Tyler Benson
a11b888d7a
Update ratpack instrumentation and remove default disabled.
2019-04-08 18:26:08 -07:00
Ben Keith
446591240c
Avoid race in TestHttpServer port selection
...
I notice occasionally some of the instrumentation tests fail due to port
conflicts in TestHttpServer, esp when using the `--parallel` option in
gradle. I think the previous method is subject to a race where two
concurrent workers will both get the same port from `randomOpenPort()`.
2019-03-06 12:55:02 -05:00
Tyler Benson
576e554445
Migrate Mongo to Decorator
2019-03-05 20:50:06 -05:00
Tyler Benson
50279d64fe
Span type should only be an attribute and not inherited
...
Previously we were inheriting from the parent and also often setting as a tag.
Apply default span assertion to verify the spanType is being checked properly. (Include error state too.)
2019-02-28 12:39:51 -08:00
Tyler Benson
133460a79a
Stop making hard references in HelperInjector
...
Also make awaitGC interruptable.
2019-02-27 19:09:01 -08:00
Tyler Benson
1644de3969
Migrate Jax-rs client instrumentation to Decorator
2019-02-27 09:40:08 -08:00
Tyler Benson
a33b6ddaa0
Implement trace origin header and propagation support
2019-02-26 08:26:31 -08:00
Nikolay Martynov
05731c3c45
Log when test starts
...
This is helpful to see what logs belong to what test
2019-02-11 12:21:20 -05:00
Nikolay Martynov
bae2d7dde8
Allow non-wrapped tasks in disabled executors
...
Some executors cannot handle tasks that have been wrapped into
`{Runnable,Callable}Wrapper` because they require certain subclass of
`{Callable,Runnable}` in order to work. We have a test that
effectively disables instrumentation for such executors.
This change makes sure that tasks that do not need to be
wrapped (which essentially means anything that is not lambda) still
get traced in such executors. One notable example of affected executor
type is `ScheduledThreadPoolExecutor`.
2019-02-11 11:47:34 -05:00
Nikolay Martynov
a46d6a2e8f
Use config inheritance in `withConfigOverride`.
...
This moves us forward to abstract 'Config' and away from depending in
specific config data source (e.g. system properties).
2019-02-05 15:51:05 -05:00
Tyler Benson
bbcd2f6949
Move other Utils to utils package
2019-02-05 11:43:05 -08:00
Tyler Benson
6aa371d790
Encapsulate config override reflection
2019-02-05 11:30:07 -08:00
Tyler Benson
1a54e8179a
Add setting to set service name by domain for http clients
...
This will allow better metric collection and identification of trends for individual services/hosts.
This is not enabled by default because it can result in a high cardinality of services.
2019-02-05 08:20:49 -08:00
Tyler Benson
03bcdc97cc
Move awaitGC to common utility package
2019-01-25 10:32:09 -08:00
Nikolay Martynov
b3ad700b34
Merge pull request #666 from DataDog/mar-kolya/aws-sdk2
...
Initial AWS2 SDK instrumentation
2019-01-25 13:01:32 -05:00
Nikolay Martynov
04fbb5085f
Improve OSGi class loader instrumentation
...
It turns out that Eclipse's OSGi implementation has two problems:
* It doesn't respect system properties by default
* It has tricky classloader implementation that loads bootstrap
classes from the classloader-has-delegation-to-bootstrap check but
doesn't load bootstrap classes from 'normal' code.
This should address second problem and make Eclipse's OSGi
implementation 'safe' by default.
2019-01-25 08:52:07 -05:00
Nikolay Martynov
e9745e6775
Log active span in test assert
2019-01-23 22:31:59 -05:00
Tyler Benson
fe52180bfc
Apply proper generic signature for Instrumenter.Default transformers()
...
Previously it was missing the MethodDescription portion.
2019-01-04 15:25:12 -08:00
Tyler Benson
8b910b46d1
Update tests for `language` tag in root span
2018-12-27 16:00:47 -08:00
Nikolay Martynov
3225c8fd03
Fix wildfly startup by injecting context classes into bootstrap package
2018-12-07 09:56:04 -05:00
Nikolay Martynov
177c1432e3
Add tests to verify that fields are not injected when feature is disabled
2018-11-29 15:18:46 -08:00
Nikolay Martynov
ad98ebc01f
Add some comments and some other minor CR tweaks
2018-11-29 15:18:46 -08:00
Nikolay Martynov
118a61cc67
Add field backed context provider
2018-11-29 15:18:46 -08:00
Tyler Benson
9bd2b86d2e
Add assertion to ensure latestDepTest dependencies are different from test.
2018-11-12 08:15:24 -08:00
Nikolay Martynov
98df97af3e
First iteration on a better context store api
...
Separate context storage from actual fetching/putting
2018-11-02 10:46:57 -04:00
Andrew Kent
d0b00e0dc0
Inject all map holder classes into the bootstrap
2018-11-01 15:05:20 -07:00
Nikolay Martynov
34372533c1
Add config for tags that propagate to JMXFetch and spans
...
Also add runtime-id tag to root span and JMXFetch metrics
2018-10-22 15:51:20 -04:00
Tyler Benson
78c6f881ed
Merge pull request #535 from DataDog/tyler/rabbit
...
Add instrumentation for RabbitMQ’s AMQP library
2018-10-19 23:26:50 +10:00
Tyler Benson
64595cf485
Add type hints and parent assertion
2018-10-19 11:51:57 +10:00
Nikolay Martynov
e02f889f09
Remove some dead code from SpockRunner
...
And also reformat it
2018-10-18 10:06:41 -04:00
Tyler Benson
8ff5c7c36c
Review fix comments and version range.
2018-10-18 16:08:37 +10:00
Tyler Benson
8ffeb5bedf
Add instrumentation for RabbitMQ’s AMQP library
2018-10-17 16:32:24 +10:00
Tyler Benson
432ce89a07
Add assertTraces to AgentTestRunner with implied argument
...
This will also help with auto complete when writing tests.
2018-10-15 10:19:00 +10:00
Andrew Kent
a697881efb
Assert no bootstrap classes in test fields or method signatures
2018-10-11 19:52:00 -07:00
Andrew Kent
13c96bba33
Additional test for shared field
2018-10-10 10:40:04 -07:00
Andrew Kent
36d396cb8e
Fix AgentTestRunner bootstrapping
2018-10-10 10:33:49 -07:00
Nikolay Martynov
5d627733d8
Use OkHttpUtils in more places
2018-09-26 15:07:20 -04:00
Gary Huang
df2699afc8
Address comments & add better resource naming for webflux spans.
...
Spans will now be named with the controller class name and method for request mapping (annotation based API), and lambda functions will be named with target class.lambda.
2018-08-31 14:31:03 -04:00
Andrew Kent
61aaebfc97
Create muzzle references from ldc instructions
2018-08-29 17:18:11 -07:00
Andrew Kent
f08a2025dd
Fix dd-trace-api tracer registration in test runner
2018-08-28 19:05:18 -07:00
Andrew Kent
7154b54e10
Rename TracerBridge and Provider
2018-08-27 12:04:26 -07:00
Andrew Kent
9f1d22ea6b
Register TracerBridge in TracerInstaller instead of DDTracer init
2018-08-27 12:04:26 -07:00
Tyler Benson
36b49c7de3
Merge pull request #451 from DataDog/tyler/netty-client-fixes
...
Allow trace to persist across netty connect.
2018-08-23 16:03:58 +10:00
Tyler Benson
898647e000
Allow trace to persist across netty connect.
...
Also create span with error on connection failure.
Add tests for connection failure.
2018-08-22 09:45:33 +10:00
Nikolay Martynov
c95baef487
Wait for given reference to get GCed in `waitGC`
...
This should help to make sure that object we are interested in
actually gets GCed.
This change also improves tests for PendingTrace and ScopeManager to
make sure that trace gets cleaned up.
2018-08-21 10:05:10 -04:00
Nikolay Martynov
a0036a76cc
Add `runFinalization` to `waitForGC`
2018-08-19 00:49:27 -04:00
Tyler Benson
f60d71f379
Fix ServerTest from messing up AgentTestRunnerTest if ran first.
2018-08-17 11:14:04 +10:00
Tyler Benson
0b289205f8
Add fixme to adapter.
2018-08-17 10:53:12 +10:00
Tyler Benson
3fc2738179
Improve test coverage and reduce duplication
2018-08-17 10:36:45 +10:00
Tyler Benson
e07dfffe5f
Migrate tests to new TestHttpServer
2018-08-16 14:23:58 +10:00
Tyler Benson
63746907e4
Add TestHttpServer
2018-08-16 14:23:58 +10:00
Tyler Benson
3f2ec7dc48
Move to separate packages
2018-08-16 12:24:27 +10:00
Andrew Kent
35c6fa2343
More error catching in safe matcher and reduce log level
2018-08-15 09:49:50 -07:00
Andrew Kent
75a6cee068
Add DDCachingPoolStrategy to reuse type descriptions
2018-08-15 09:49:50 -07:00
Andrew Kent
50c5a57c49
Replace UnloadedType with ByteBuddy TypeDescription
2018-08-15 09:49:50 -07:00
Andrew Kent
f8f45d7f14
Muzzle field matching
2018-08-15 09:49:37 -07:00
Andrew Kent
c4daf007e3
Muzzle method and access matching
2018-08-15 09:49:37 -07:00
Andrew Kent
4887822eba
Muzzle method ref creation and matching
2018-08-15 09:46:30 -07:00
Andrew Kent
55a0abce68
Add notes of potential references to ReferenceCreator
2018-08-15 09:46:30 -07:00
Tyler Benson
84d38a8270
Merge pull request #439 from DataDog/tyler/method-signatures
...
Cleanup method signatures and servlet 2 instrumentation
2018-08-13 17:29:02 +10:00
Tyler Benson
f801cbd466
Merge pull request #428 from DataDog/tyler/use-WeakConcurrentMap
...
Use WeakConcurrentMap
2018-08-13 16:44:16 +10:00
Tyler Benson
4583d12b31
Cleanup method signatures and servlet 2 instrumentation
...
adding the abstract servlet instrumentation reduces code duplication and makes it more similar to servlet 3 instrumentation.
2018-08-13 15:14:10 +10:00
Tyler Benson
847484cd47
Use WeakConcurrentMap
...
Instead of `Collections.synchronizedMap(new WeakHashMap<>())`.
2018-08-06 14:14:57 +10:00
Tyler Benson
064ae4c238
Separate span for input and output streams.
2018-08-03 15:41:16 +10:00
Tyler Benson
ff9ef671f3
Apply formatter on groovy files.
2018-07-31 12:09:28 +10:00
Gary Huang
4c88e1a0a8
Merge pull request #392 from DataDog/gary/uint64-id-support
...
Change the internal storage and handling of trace ID, span ID, and pa…
2018-07-30 15:01:10 -04:00
Nikolay Martynov
3f158bb47f
Fix `SpockRunner` BootstrapJar creation under Java9+
2018-07-26 10:01:55 -04:00
Gary Huang
6317b21d5c
Fix merge conflicts with service mapping change
2018-07-26 09:16:41 -04:00
Gary Huang
93e70dcef6
Address comments and add test case for extracting non numeric IDs
2018-07-24 14:04:52 -04:00
Nikolay Martynov
3d8e76c2a4
Get rid of `WRITER_PHASER`
...
We have alternative way of doing the same thing and `Phaser` seems to be
not very correct way of doing this anyway.
2018-07-24 11:41:48 -04:00
Nikolay Martynov
6932d581ed
Add some helpful messages to AgentTestRunner assertions
2018-07-23 10:04:53 -04:00
Nikolay Martynov
d4d770fe42
Pull out ratpack helper into seprate class to avoid copy-paste
2018-07-23 10:04:53 -04:00
Nikolay Martynov
4283e3acb1
Merge pull request #396 from DataDog/mar-kolya/test-http-client-timeout-increase
...
Increase build stability by increasing some http client timeouts
2018-07-22 21:35:32 -04:00
Nikolay Martynov
564b4e9dc3
Increase build stability by increasing some http client timeouts
...
This makes build more resilient to slow boxes and high parallelism
2018-07-22 00:41:37 -04:00
Tyler Benson
a34f7b849b
Instrument gRPC
...
Adds spans for the duration of the connection and child spans for each message.
Also propagates the trace using the metadata object.
2018-07-20 12:25:04 +10:00
Tyler Benson
12a2fce96d
Upgrade java formatter version.
2018-07-19 14:10:53 +10:00
Andrew Kent
2925df8de5
Clean up and document
2018-07-10 17:26:49 -04:00
Andrew Kent
541a6998a4
Hook up muzzle to Instrumenter.Default's matcher
2018-07-10 17:26:49 -04:00
Andrew Kent
02a3e6a5d3
New Instrumentation API
2018-07-06 17:17:32 -04:00
Tyler Benson
83db4e8c4d
Merge pull request #352 from DataDog/tyler/netty
...
Netty HTTP client and server instrumentation
2018-06-21 14:11:12 +10:00
Tyler Benson
43e31eae80
Separate out instrumentation for netty 4.0 from 4.1
2018-06-18 12:52:42 +10:00
Andrew Kent
93281f775a
Clean up akkahttp-server/lagom tests
2018-06-15 14:30:23 -07:00
Andrew Kent
2cfd7bf911
Allow Unit tests to skip expected instrumentation errors.
2018-06-15 13:25:41 -07:00
Andrew Kent
5a77ac3749
akka-http sync and async tests
2018-06-15 12:48:57 -07:00
Andrew Kent
f28445c45f
CorrelationIdentifier for MDC frameworks.
2018-06-14 15:33:15 -07:00
Nikolay Martynov
30d640e7ee
Provide way to use CLosure to assert tags values
2018-06-06 16:40:34 -04:00
Nikolay Martynov
b1bc24dd67
Raname function in TraceAssert to match actual action
2018-06-06 16:40:12 -04:00
Nikolay Martynov
2e5007fbd8
Fix function name in TagsAssert
2018-06-06 10:43:23 -04:00
Tyler Benson
d235618a6e
Add instrumentation for Java’s UrlConnection
...
For HttpUrlConnection, trace propagation headers are added to the outgoing request.
Due to the awkward design of the API, the ability to instrument in a natural way was limited, thus the main points instrumented are the get{Input,Output}Stream methods.
2018-06-06 09:12:48 +10:00
Tyler Benson
de74eb1938
Add additional metadata to ES client calls.
2018-05-25 13:58:44 +10:00
Andrew Kent
ad7f6a5e71
Generate at compile-time and lazy-load reference matchers
2018-05-18 10:45:05 -07:00
Andrew Kent
08df3cef35
Use bytebuddy plugin to add safety checks to instrumentation
2018-05-18 10:45:05 -07:00
Tyler Benson
dc814aeb6d
Fix tests.
2018-05-11 15:19:30 +10:00
Tyler Benson
2dd36c2b79
Give more distinct names and migrate test style
2018-05-08 10:03:22 +10:00
Tyler Benson
c81615b255
Allow configuration of additional trace annotations
...
List can be set to empty if needed.
2018-05-07 13:27:23 +10:00
Tyler Benson
441bf59e80
Add tracing for other annotations and config
...
Allows for specifying additional traced methods via env var or sys prop config.
2018-05-07 13:27:23 +10:00
Tyler Benson
7dfdc2d50e
Missing autoservice annotation processor
2018-05-04 15:38:41 +10:00
Tyler Benson
f35e2e6ebe
Remove various warnings and other cleanup
...
Also upgrade some plugins.
2018-05-04 14:05:06 +10:00
Tyler Benson
be34eaf032
Instrument HystrixCommand and HystrixThreadPool
2018-05-04 14:03:48 +10:00
Tyler Benson
84b7080860
Fix AgentInstaller ignores and @Trace naming
2018-05-03 13:03:53 +10:00