Tyler Benson
82f50e22b7
Merge pull request #811 from DataDog/tyler/hystrixobservable
...
Add support for HystrixObservableCommand
2019-05-02 09:47:09 -07:00
Tyler Benson
793627c167
Fix tests
2019-04-30 15:55:12 -07:00
Tyler Benson
c8743fce64
Remove potentially dangerous recursive call.
2019-04-30 14:53:15 -07:00
Tyler Benson
ac734ac6ee
More classloading issues with Glassfish
...
Glassfish’s WebappClassLoader caches when a resource or class load fails, so we can’t load as a resource first to see if it is available.
Also add additional logging.
2019-04-30 12:38:54 -07:00
Tyler Benson
2c5ae9f3b1
Make OSGi instrumentation more generic
...
This should help it work with felix.
Also reduce log noise.
2019-04-30 12:38:54 -07:00
Tyler Benson
c971c434d1
Fix propagation and add onUnsubscribe handler
...
Ensures that span is closed when Observable is unsubscribed from.
Also added retransform error logger since retransforms might be missed if an exception is thrown, leading to odd behavior.
2019-04-30 11:52:20 -07:00
Tyler Benson
f74fd347c2
Merge pull request #814 from raphw/frames-fixed
...
Fixes #813 : Only add frames if class file version supports attribute
2019-04-30 11:13:53 -07:00
Tyler Benson
1b38fcc8b4
Apply formatting
2019-04-30 10:08:58 -07:00
Rafael Winterhalter
eeaa27af83
Fixes #813 : Only add frames if class file version supports attribute
2019-04-30 10:22:27 +02:00
Tyler Benson
54287fa548
Add comment and consistency.
2019-04-29 12:21:05 -07:00
Tyler Benson
6414de82d9
Add support for HystrixObservableCommand
...
This change is slightly breaking for existing hystrixCommand code since the resource name changes from run->execute and getFallback->fallback. The fallback span is also now a child of the execute span.
2019-04-29 12:04:27 -07:00
Tyler Benson
25d109753d
Merge pull request #809 from DataDog/tyler/httpasyncclient
...
Add instrumentation for Apache HttpAsyncClient
2019-04-29 08:14:11 -07:00
Tyler Benson
68a68f1057
Ensure that http.url tag doesn’t have query params set
...
Make handling of it more consistent in decorator.
2019-04-26 09:48:34 -07:00
Tyler Benson
20df3aa18e
Add HttpAsyncClient to Elasticsearch for verification.
2019-04-25 17:27:06 -07:00
Tyler Benson
179b9b69cb
Upgrade Byte Buddy to 1.9.12
...
and a few other minor code changes.
2019-04-25 10:36:35 -07:00
Tyler Benson
9ad06a6791
Add instrumentation for Apache HttpAsyncClient
...
Extract http client tests to shared class.
2019-04-23 17:10:40 -07:00
Tyler Benson
4c79f38a4d
A couple other minor changes…
2019-04-19 10:41:13 -07:00
Tyler Benson
ec91a75848
Add config allowing classes to be excluded from transformation
...
Add the following system property or corresponding environment variable:
```
dd.trace.classes.exclude=some.packagename.*,some.classname.MyClass$NestedClass
```
2019-04-19 10:41:13 -07:00
Tyler Benson
746c423199
Merge pull request #775 from darylrobbins/twilio
...
Twilio SDK Instrumentation
2019-04-19 09:18:40 -07:00
Tyler Benson
2acaeb3dfb
Revert minor changes.
2019-04-17 16:23:15 -07:00
Tyler Benson
e74941a4d5
Merge branch 'master' into twilio
2019-04-16 17:44:36 -07:00
Tyler Benson
b9207133d6
Split async and sync advice and misc cleanup.
2019-04-16 13:56:44 -07:00
Daryl Robbins
315ae67fd2
Merge branch 'twilio' of github.com:darylrobbins/dd-trace-java into twilio
...
* 'twilio' of github.com:darylrobbins/dd-trace-java:
Updates to handle async calls, which have broken all tests
Missed Gradle file
WIP Twilio SDK Instrumentation
# Conflicts:
# dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioClientDecorator.java
# dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioInstrumentation.java
# dd-java-agent/instrumentation/twilio/src/test/groovy/test/TwilioClientTest.groovy
Merge branch 'twilio' of github.com:darylrobbins/dd-trace-java into twilio
Improved unit testing
* 'twilio' of github.com:darylrobbins/dd-trace-java:
Updates to handle async calls, which have broken all tests
Missed Gradle file
WIP Twilio SDK Instrumentation
# Conflicts:
# dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioClientDecorator.java
# dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioInstrumentation.java
# dd-java-agent/instrumentation/twilio/src/test/groovy/test/TwilioClientTest.groovy
Fix sleep times and choose Java7-friendly test dependencies
Corrected test assertion
2019-04-16 13:56:44 -07:00
Daryl Robbins
13aa267d84
WIP Twilio SDK Instrumentation
...
Missed Gradle file
Updates to handle async calls, which have broken all tests
2019-04-16 13:56:44 -07:00
Daryl Robbins
e3d97b0984
WIP Twilio SDK Instrumentation
...
Missed Gradle file
Updates to handle async calls, which have broken all tests
Fixed instrumentation and augmented tests
2019-04-16 13:46:43 -07:00
Tyler Benson
0315c976af
Fixes for ratpack.
2019-04-16 13:29:26 -07:00
Tyler Benson
b343fe4551
Split peer connection details different generic argument
2019-04-16 08:34:43 -07:00
Tyler Benson
bf05984208
Server tags should report peer, not self hostname/port
...
Previously this was not obvious and incorrect.
2019-04-16 08:21:01 -07:00
Tyler Benson
dc2e435de9
Merge pull request #797 from DataDog/tyler/ratpack
...
Update ratpack instrumentation and remove default disabled.
2019-04-16 08:14:10 -07:00
Luca Abbati
f4a17ba4c5
Remove tests that relied on inner knowledge of the class. Feature still tested with cglib test.
2019-04-12 17:12:50 +02:00
Luca Abbati
ff021f34db
Add minor fixes to comments and typos as per code reviewer suggestions
2019-04-12 16:51:49 +02:00
Luca Abbati
c6863f0ca3
Use groovy class reference style in Spock tests
2019-04-11 16:06:46 +02:00
Luca Abbati
e8435b165d
Fixed typo in comment
2019-04-11 15:49:10 +02:00
Luca Abbati
3a6fedda14
Add context getter/setter methods to an object only if not already defined
...
Class `FieldBackedProvider` uses ByteBuddy to add a field and its respective getters and setters to store the context object.
Assuming that we have a class `A` that implements runnable and that we wrap with a `FieldBackedProvider`
`Runnable` interfaces, if later on we use a cglib's `Enancher` class on `A` then the our mechanism will kick in again and try
to add the methods again. This causes a `java.lang.ClassFormatError: Duplicate method name "get__datadogContext$java$lang$Runnable" with signature "()Ljava.lang.Object;"`
to be thrown because CGLIB already copied over those methods from the original class `A` to the newly created class.
With this commit we now check that method were not previously defined before adding them, and if they were then we avoid adding them
again.
The reason why it wasn't faiing before is that we only checked on context field existence, not methods and cglib do not copy over fields, it copies only methods. E.g.
```
public class Main {
public static class A {
private String name = "hey";
public String getName() {
return this.name;
}
}
public static void main(String[] args) {
System.out.println("----- 'A' declared fields -----");
A s = new A();
for (Field f : s.getClass().getDeclaredFields()) {
System.out.println("field: " + f.getName());
}
for (Method m : s.getClass().getDeclaredMethods()) {
System.out.println("method: " + m.getName());
}
System.out.println("----- Proxy declared fields -----");
Enhancer enhancer = new Enhancer();
enhancer.setSuperclass(A.class);
enhancer.setCallback((FixedValue) () -> null);
A proxy = (A) enhancer.create();
for (Field f : proxy.getClass().getDeclaredFields()) {
System.out.println("field: " + f.getName());
}
for (Method m : proxy.getClass().getDeclaredMethods()) {
System.out.println("method: " + m.getName());
}
}
}
```
Results in:
```
----- 'A' declared fields -----
field: name
method: getName
----- Proxy declared fields -----
field: CGLIB$BOUND
field: CGLIB$FACTORY_DATA
field: CGLIB$THREAD_CALLBACKS
field: CGLIB$STATIC_CALLBACKS
field: CGLIB$CALLBACK_0
field: CGLIB$CALLBACK_FILTER
method: equals
method: toString
method: hashCode
method: clone
method: getName
method: newInstance
method: newInstance
method: newInstance
method: setCallbacks
method: CGLIB$SET_STATIC_CALLBACKS
method: CGLIB$SET_THREAD_CALLBACKS
method: getCallback
method: getCallbacks
method: CGLIB$STATICHOOK1
method: CGLIB$BIND_CALLBACKS
method: setCallback
```
2019-04-11 15:45:43 +02:00
Tyler Benson
c4ac5b94ec
Fix span relationships and other review issues.
2019-04-10 17:31:22 -07:00
Nikolay Martynov
e41769232e
Fix AWS instrumentation warning in Idea
...
Idea complains about duplicates root because we run latest dep tests
and 'later version' tests from the same dir. This is ultimately
TestSetd plugin bug by the looks of it, but we can work around it by
swapping old and new version tests.
Also run both old and new version tests under 'test' task.
2019-04-09 10:50:07 -04:00
Tyler Benson
a11b888d7a
Update ratpack instrumentation and remove default disabled.
2019-04-08 18:26:08 -07:00
Tyler Benson
229e8ef51b
Fix JMXFetch log level
2019-04-08 09:48:49 -07:00
Nikolay Martynov
6fd630831f
Stop using `scopeManager().activate(span, true)`
2019-04-08 11:54:47 -04:00
Nikolay Martynov
f4791a17df
Use decorators in Netty's ChannelFutureListenerInstrumentation
2019-04-08 11:35:13 -04:00
Nikolay Martynov
7b53cebd3d
Fix some compiler warnings
2019-04-05 12:58:54 -04:00
Nikolay Martynov
a5b5d236e1
Use Scope when opening span in netty instrumentation
2019-04-05 11:13:53 -04:00
Nikolay Martynov
e678a62e5b
Use scope when opening JMS span
2019-04-05 11:13:53 -04:00
Nikolay Martynov
4119059e70
Jaxrs: use scope when span is opened
2019-04-05 11:13:53 -04:00
Nikolay Martynov
0e7418fde6
AWS v2: use scope when span is created
2019-04-05 11:13:53 -04:00
Nikolay Martynov
480a14b170
OkHttp: rearrange scope code a bit
2019-04-05 11:13:53 -04:00
Nikolay Martynov
1af7487201
Wrap Rabbitmq channel span into scope
2019-04-05 11:13:53 -04:00
Nikolay Martynov
743ab327b0
Wrap GRPC span start into scope
2019-04-05 11:13:53 -04:00
Nikolay Martynov
a1e23dfb86
Make sure span is opened and closed with scope in Cassandra
2019-04-05 11:13:53 -04:00
Nikolay Martynov
bddee3d6e2
Make sure span is opened and closed with scope in Mongo
2019-04-05 11:13:53 -04:00
Nikolay Martynov
f3e1eb4f5d
Make sure span is opened and closed with scope in Couchbase
2019-04-05 11:13:53 -04:00
Nikolay Martynov
2bba4c5591
Make sure span is opened and closed with scope in spymemcached
2019-04-05 11:13:53 -04:00
Nikolay Martynov
bfb48f31c1
Make sure span is opened and closed with scope in http_url_connection
2019-04-05 11:13:53 -04:00
Nikolay Martynov
997832ba4e
Limit hibernate integration tests to 5.x.x since we do not support 6+
2019-04-05 10:43:16 -04:00
Nikolay Martynov
93621fac17
Specify hibernate latest dep test deps for 4.0 tests
2019-04-05 09:26:14 -04:00
Nikolay Martynov
c104be1fa7
Add compile dep on scala to make Idea happy
2019-04-03 13:59:25 -04:00
Nikolay Martynov
e3488d23a2
Netty: do not use deprecated constants
2019-04-03 13:58:54 -04:00
Nikolay Martynov
a245ec4949
Upgradle gradle
2019-04-03 12:56:15 -04:00
Nikolay Martynov
de980c2d52
Merge pull request #787 from DataDog/mar-kolya/compiler-config-fix
...
Mar kolya/compiler config fix
2019-04-01 09:15:39 -04:00
Nikolay Martynov
212d4d3c71
Provide Java compiler with bootstrap classes for Java7
...
when compiling Java7-compatible sources.
2019-03-29 13:53:53 -04:00
Luca Abbati
2c282552dc
Fix comment
2019-03-29 17:26:43 +01:00
Luca Abbati
ff17ed166b
Fix code style in cassandra integration
2019-03-29 16:38:32 +01:00
Luca Abbati
dfecfc8329
Fixed typo in comments (follow-up)
2019-03-29 14:15:25 +01:00
Luca Abbati
1e69fb7234
Have cassandra integration to work with recent versions of Guava.
...
Recent versions of Guava removed method 'Futures::transform(input, function)' in favor of 'Futures::transform(input, function, executor)'.
This commit manually retrieve the executor as it was done in Guava 20 in the overloaded method.
See: 65f6b4f4b1/guava/src/com/google/common/util/concurrent/AbstractTransformFuture.java (L58)
2019-03-29 13:42:46 +01:00
Nikolay Martynov
3b0e769e88
Fix helper injection in context provider
...
Currently helpers will not be injected if instrumentation doesn't
apply. Unfortunately it is possible for some classes to have context
fields added even if instrumentation is not allied (i.g. instrumented
classes are not used). Fix this by always injecting all helpers if we
inject context fields.
2019-03-26 15:53:34 -04:00
Tyler Benson
004c44d70c
Add tests confirming that Spring Data Repos aren’t working
...
The hibernate instrumentation doesn’t seem to work with Spring Data JPA.
2019-03-25 11:58:16 -07:00
Tyler Benson
a73b8c36f0
Review changes.
2019-03-25 09:56:05 -07:00
Tyler Benson
26a0194b84
Prevent instrumentation’s Context from applying if Muzzle fails
...
This can cause problems if muzzle prevents an integration from loading because the class for the new field being added may not be injected. This results in an error:
```
Caused by: java.lang.NoClassDefFoundError: datadog/trace/bootstrap/instrumentation/context/FieldBackedProvider$ContextAccessor$org$hibernate$Session$datadog$trace$bootstrap$instrumentation$hibernate$SessionState
```
2019-03-25 08:19:44 -07:00
Tyler Benson
63b5c094e7
Fix NPE in hibernate instrumentation
...
Also add each hibernate instrumentation project as a test dependency to the others. This demonstrates a problem with muzzle and instrumentation context which currently causes the tests to fail.
2019-03-22 17:06:19 -07:00
Tyler Benson
b22b11b9b0
Add timeout test for V2
...
Also make sure span is closed on error.
2019-03-21 18:08:35 -07:00
Tyler Benson
8d96729ae8
Fix instrumentation and add tests to verify.
2019-03-21 18:08:35 -07:00
Nikolay Martynov
3a3705f708
AWS v0: Close span non AWS SDK errors
...
Looks like AWS SDK doesn't call interceptor when non-sdk exception
occurs. This leads to leaking open spans. Fix that by instrumenting
http client.
Note: currently has no tests.
2019-03-21 18:08:35 -07:00
Tyler Benson
e0d95ceb19
Fix cassandra supported version
...
and limit range check to <4.
The latest release (4.0) is not compatible with our instrumentation.
2019-03-21 17:57:08 -07:00
Will Gittoes
c363f64b50
Merge pull request #773 from DataDog/willgittoes-dd/hibernate-fix
...
Improve selectivity of Hibernate instrumentation application
2019-03-22 10:08:26 +11:00
Will Gittoes
af0f37861b
Support Hibernate 3.3
2019-03-21 13:38:16 +11:00
Tyler Benson
07463e04bd
Merge pull request #772 from DataDog/tyler/status-error-mapping
...
Implement Http Status error mapping via config
2019-03-20 19:14:17 -07:00
Will Gittoes
c369fafe8c
Support muzzle testInverse = true
2019-03-21 12:17:24 +11:00
Tyler Benson
e5e2c5b9dc
Merge pull request #710 from DataDog/tyler/size-limited-flushes
...
Change DDAgentWriter to use Disruptor
2019-03-20 11:03:56 -07:00
Will Gittoes
f94f22bcba
Dont load hibernate instrumentation unless correct version of hibernate is on the classpath
2019-03-20 15:52:49 +11:00
Tyler Benson
715af67e70
Implement Http Status error mapping via config
...
Using the following defaults:
* `DD_HTTP_CLIENT_ERROR_STATUSES=400-499`
* `DD_HTTP_SERVER_ERROR_STATUSES=500-599`
2019-03-19 17:11:48 -07:00
Will Gittoes
8c5158f8e9
Restructure hibernate integration
2019-03-20 11:00:42 +11:00
Tyler Benson
7ffcf5ad4d
Change DDAgentWriter to use Disruptor
...
Serialize payloads as they arrive, send to agent when size exceeds 5MB.
If a flood of traces fills up the RingBuffer, we still count the traces that are discarded for stats reporting.
Do we want to allow configuration of the RingBuffer size?
2019-03-19 09:44:23 -07:00
Will Gittoes
4825a113f8
Add a couple of comments about the code structure
2019-03-19 16:28:27 +11:00
Will Gittoes
b60c3bcc0a
Decouple common utils used in hibernate tracing from any specific version of hibernate
2019-03-19 14:40:16 +11:00
Will Gittoes
86d14280d2
Exclude hibernate-annotations from 3.5 latestDepTest
2019-03-19 09:56:39 +11:00
Will Gittoes
3b6c688ce8
Support Hibernate 3.5
2019-03-19 09:56:39 +11:00
Will Gittoes
5a04c58c55
Merge pull request #765 from DataDog/willgittoes-dd/hibernate-5
...
Add support for Hibernate 4.3+ ProcedureCall
2019-03-19 09:56:03 +11:00
Nikolay Martynov
63e0c0f032
Support Unix Domain Socket proxy to send traces
2019-03-15 11:36:44 -07:00
Tyler Benson
071c16a839
Merge pull request #768 from DataDog/tyler/metrics-double
...
Agent doesn’t like getting floats.
2019-03-15 07:55:25 -07:00
Tyler Benson
472262149c
Apply timeout and retry to test
...
This test seems to hang a lot in java 7.
2019-03-14 15:44:32 -07:00
Tyler Benson
192eb894a4
Fix Trace Search + Analytics integration config key
2019-03-14 10:54:43 -07:00
Will Gittoes
30401bfed8
Fix test
2019-03-13 14:20:58 +11:00
Will Gittoes
54401083ce
Fix version of hsqldb
2019-03-13 14:09:49 +11:00
Will Gittoes
474f196c2f
fix style
2019-03-13 13:57:05 +11:00
Will Gittoes
2ceeb4dc14
Additional instrumentation for hibernate 4.3 and 5.x onwards
2019-03-13 13:52:33 +11:00
Tyler Benson
ca708db5da
Remove trace injection into AWS requests
...
I don’t think these are helping us and we may still risk messing up the signed request if this happens too late.
2019-03-12 14:08:27 -07:00
Tyler Benson
bb7923571e
Merge pull request #764 from DataDog/tyler/memcache-decorator
...
Migrate Memcache instrumentation to Decorator
2019-03-12 14:01:47 -07:00
Tyler Benson
bca5614508
Migrate Memcache instrumentation to Decorator
2019-03-12 11:47:25 -07:00
Tyler Benson
d30d715dc8
Migrate Spring Web{flux} instrumentation to Decorator
2019-03-12 09:38:53 -07:00
Tyler Benson
d31965ff5a
Merge pull request #761 from DataDog/tyler/rabbit-decorator
...
Migrate RabbitMQ instrumentation to Decorator
2019-03-12 08:08:22 -07:00
Will Gittoes
736f1787cc
Merge pull request #703 from DataDog/willgittoes-dd/hibernate-integration
...
Hibernate integration
2019-03-12 15:00:04 +11:00
Will Gittoes
a3925b556c
Get rid of unneeded try/catch block
2019-03-12 14:07:37 +11:00
Tyler Benson
817f5e3f8e
Merge pull request #762 from DataDog/tyler/play-decorator
...
Migrate Play instrumentation to Decorators
2019-03-11 19:27:03 -07:00
Tyler Benson
69d31cc03a
Restrict derby version
...
Lastest version requires Java 9+, so we can’t test against it for now.
2019-03-12 11:52:39 +11:00
Will Gittoes
e1915c35bf
Merge fixes for Hibernate
2019-03-12 10:46:30 +11:00
Will Gittoes
bf110640e8
Merge branch 'master' into willgittoes-dd/hibernate-integration
2019-03-12 09:39:58 +11:00
Tyler Benson
ee1d385c7b
Restrict derby version
...
Lastest version requires Java 9+, so we can’t test against it for now.
2019-03-11 14:27:10 -07:00
Tyler Benson
d90a3c47ae
Restrict derby version
...
Lastest version requires Java 9+, so we can’t test against it for now.
2019-03-11 14:26:58 -07:00
Tyler Benson
2146678d0a
Migrate RabbitMQ instrumentation to Decorator
2019-03-11 14:09:06 -07:00
Tyler Benson
b8affc472d
Migrate Play instrumentation to Decorators
2019-03-11 11:54:28 -07:00
Tyler Benson
e3b871afb5
Merge pull request #758 from DataDog/tyler/okhttp-decorator
...
Migrate OkHttp Instrumentation to Decorators
2019-03-11 09:46:40 -07:00
Tyler Benson
0d23ab3169
Merge pull request #752 from DataDog/arbll/add-uds-support
...
Add UDS support for jmxfetch.
2019-03-11 08:22:51 -07:00
Will Gittoes
81f78db0ff
Support hibernate 4.0
2019-03-11 17:22:05 +11:00
Will Gittoes
600f2e267f
Enable integration for hibernate 4.3
2019-03-11 16:20:27 +11:00
Will Gittoes
b40483c974
Add "hibernate" as the primary instrumentation name
2019-03-11 14:07:26 +11:00
Tyler Benson
c500d4b236
Migrate OkHttp Instrumentation to Decorators
2019-03-08 15:12:29 -08: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
Will Gittoes
7ed7ce7518
Fix muzzle
2019-03-06 10:39:46 +11:00
Will Gittoes
01f4666ac4
Simplify testing multiple session implementations
2019-03-06 10:28:18 +11:00
Will Gittoes
e05429a9ff
Rename to hibernate-5
2019-03-06 10:12:52 +11:00
Will Gittoes
00865dab88
Review comments: Replace un-needed instrumentation by just propagating scope not spans
2019-03-06 10:05:21 +11:00
Nikolay Martynov
d054790161
Merge pull request #754 from DataDog/mar-kolya/increase-docker-timeout
...
Increase docker container timeout in tests to help with stability on …
2019-03-04 14:40:27 -05:00
Tyler Benson
44919b4dbe
Merge pull request #751 from DataDog/tyler/netty-decorator
...
Migrate Netty instrumentation to Decorator
2019-03-04 09:26:11 -08:00
Nikolay Martynov
9272f88fe6
Increase docker container timeout in tests to help with stability on underpowered machines running builds
2019-03-04 11:59:41 -05:00
Tyler Benson
084c2eb51f
Migrate Netty instrumentation to Decorator
2019-03-04 08:16:25 -08:00
Nikolay Martynov
8594e55530
Upgrade JMXFetch to the latest version
2019-03-04 08:48:04 -05:00
Arthur Bellal
15df2cd8f4
add uds support
2019-03-04 14:18:53 +01:00
Will Gittoes
9e3fda549d
More codenarc fixes
2019-03-01 13:53:51 +11:00
Will Gittoes
ffa140f444
codenarc doesnt know how to parse datatables
2019-03-01 13:12:14 +11:00
Will Gittoes
644d26f4a9
Change muzzle tests
2019-03-01 12:53:51 +11:00
Will Gittoes
bfc1042c3a
Additional test for OrmClientDecorator
2019-03-01 12:33:57 +11:00
Tyler Benson
e098e6bd64
Migrate kafka instrumentation to Decorator.
2019-02-28 16:27:31 -08:00
Will Gittoes
e6d593eabe
JAXB deprecated from default Java classpath in later JVMs, but required for tests
2019-03-01 10:49:49 +11:00
Nikolay Martynov
65cb8af873
Fix tests that verify that cancelling job cancels continuation
2019-02-28 18:44:39 -05:00
Tyler Benson
339784c4eb
Merge pull request #744 from DataDog/tyler/jms-decorator
...
Migrate JMS instrumentation to Decorator
2019-02-28 15:32:31 -08:00
Tyler Benson
1f60904321
Merge pull request #743 from DataDog/tyler/jetty-decorator
...
Migrate Jetty instrumentation to Decorator
2019-02-28 14:59:45 -08:00
Will Gittoes
afc517f0c3
Review comments
2019-03-01 09:42:07 +11:00
Tyler Benson
fc40c9617a
Migrate JSP instrumentation to Decorator
...
Remove span kind and type from generated spans since these classify more as specialized @Trace spans.
2019-02-28 14:30:28 -08:00
Tyler Benson
5668e6006f
Migrate Jetty instrumentation to Decorator
2019-02-28 13:54:37 -08:00
Tyler Benson
50b4e1623e
Migrate JMS instrumentation to Decorator
2019-02-28 13:52:29 -08: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
Nikolay Martynov
3029d3d85c
Merge pull request #741 from DataDog/mar-kolya/tomcat-classloadin-instrumentation
...
Add instrumentation for Tomcat webapp classloading
2019-02-28 13:48:40 -05:00
Nikolay Martynov
aa031cc708
Add instrumentation for Tomcat webapp classloading
2019-02-28 12:58:08 -05:00
Tyler Benson
d53d3fe4c8
Add @Retry to tests that fail randomly in CI.
...
Should eventually revisit this to try and remove them.
Latest failure was on:
```
at ExecutorInstrumentationTest.#poolImpl '#name' reports after canceled jobs(ExecutorInstrumentationTest.groovy:202)
```
2019-02-27 20:56:47 -08:00
Will Gittoes
3334affc42
Add test for OrmClientDecorator
2019-02-28 15:38:25 +11:00
Tyler Benson
133460a79a
Stop making hard references in HelperInjector
...
Also make awaitGC interruptable.
2019-02-27 19:09:01 -08:00
Will Gittoes
093387bb01
Review comments and additional testing
2019-02-28 11:04:31 +11:00
Tyler Benson
f7e8980d08
Add null check on span type
...
Null spanTypes cause the tag to be removed.
2019-02-27 15:35:15 -08:00
Tyler Benson
9c9e74e0d0
Missing helpers
2019-02-27 13:37:03 -08:00
Tyler Benson
a413b0d08d
Review changes.
2019-02-27 12:39:03 -08:00
Tyler Benson
1644de3969
Migrate Jax-rs client instrumentation to Decorator
2019-02-27 09:40:08 -08:00
Tyler Benson
4e9449db81
Migrate Jax-rs annotation instrumentation to Decorator
2019-02-27 09:40:08 -08:00
Tyler Benson
cd9dc94b24
Migrate Hystrix instrumentation to Decorator
2019-02-27 09:40:08 -08:00
Tyler Benson
34242e4849
Migrate method tracing instrumentation to Decorator
2019-02-27 09:40:08 -08:00
Tyler Benson
d842612697
Migrate Jedis/Lettuce instrumentation to Decorator
2019-02-27 09:04:52 -08:00
Tyler Benson
9e81bba3fa
Review comments
2019-02-27 08:41:32 -08:00
Will Gittoes
c0e5baebda
Support stored procedures
2019-02-27 16:17:27 +11:00
Will Gittoes
044ff75e07
Neaten decorator pattern a bit
2019-02-27 09:35:10 +11:00
Tyler Benson
c46909e59f
Migrate JDBC instrumentation to Decorator
2019-02-26 11:16:35 -08:00
Tyler Benson
99f2d97cd5
review fixes
2019-02-26 08:32:43 -08:00
Tyler Benson
a33b6ddaa0
Implement trace origin header and propagation support
2019-02-26 08:26:31 -08:00
Nikolay Martynov
2c2f81ea34
Merge pull request #733 from DataDog/mar-kolya/remove-unused-function
...
Remove unused testing function
2019-02-26 11:18:11 -05:00
Tyler Benson
e17e029540
Merge pull request #732 from DataDog/tyler/httpurlconnection-decorator
...
Migrate HttpURLConnection instrumentation to Decorator
2019-02-26 08:13:46 -08:00
Tyler Benson
0aba752787
Merge pull request #726 from blockmar/hystrix-tags
...
Hystrix metadata added to tags and Command Group included in resource name
2019-02-26 08:05:56 -08:00
Nikolay Martynov
15bca28539
Remove unused testing function
2019-02-26 10:31:31 -05:00
Will Gittoes
079fcd6a56
Use a Dectorator for the Hibernate instrumentation
2019-02-26 17:31:42 +11:00
Will Gittoes
8985d6fd07
Merge branch 'master' into willgittoes-dd/hibernate-integration
2019-02-26 12:03:08 +11:00
Will Gittoes
8ffb9a63b0
Add hibernate.Criteria instrumentation
2019-02-26 12:02:40 +11:00
Tyler Benson
678df7b43d
Migrate HttpURLConnection instrumentation to Decorator
2019-02-25 14:48:15 -08:00
Tyler Benson
adb2eb9b55
Migrate gRPC instrumentation to Decorator
2019-02-25 13:17:28 -08:00
Anders Blockmar
8d601b7f0d
Get methodName directly by annotation. Applied Google formatting.
2019-02-25 09:45:10 +01:00
Will Gittoes
b95ff2eb8e
Hibernate: instrument querying
2019-02-25 10:17:14 +11:00
Tyler Benson
2f3f2d4e04
Merge pull request #728 from DataDog/tyler/static-import-decorators
...
Rename and static import decorators instance
2019-02-22 15:51:21 -08:00
Tyler Benson
461e01270c
Merge pull request #729 from DataDog/tyler/license-cleanup
...
Remove unnecessary license checker
2019-02-22 15:28:02 -08:00
Tyler Benson
93e38f6f0d
Rename and static import decorators instance
...
In the instrumentation it reads better.
2019-02-22 13:44:34 -08:00
Tyler Benson
7e82f5b197
Remove unnecessary license checker
2019-02-22 13:42:43 -08:00
Tyler Benson
db47fde8d1
Group Elasticsearch instrumentation into common folder
...
Also migrate to decorator.
2019-02-22 13:28:11 -08:00
Tyler Benson
f04d113ecb
Make decorators public and add tests
2019-02-22 09:42:53 -08:00
Anders Blockmar
5c9ddd6923
POC for hystrix metadata as tags in Hystrix Instrumentation
2019-02-22 15:59:32 +01:00
Tyler Benson
dd35372a72
Add Cassandra decorator
2019-02-21 15:43:12 -08:00
Tyler Benson
9c8e689b6d
Add decorator for couchbase instrumentation
2019-02-21 15:27:26 -08:00
Tyler Benson
2e4d8e94d6
Merge pull request #724 from DataDog/tyler/exclude-macro
...
Exclude groovy macro package from instrumentation
2019-02-21 12:37:22 -08:00
Tyler Benson
8f9ea87ef6
Merge pull request #723 from DataDog/tyler/aws-decorators
...
Migrate AWS SDK instrumentation to decorators
2019-02-21 12:37:05 -08:00
Tyler Benson
0d9e6ad97a
Merge pull request #722 from DataDog/tyler/akka-apache-decorators
...
Akka and Apache HttpClient migrate to decorators
2019-02-21 12:27:53 -08:00
Tyler Benson
fb304a110d
Migrate AWS SDK instrumentation to decorators
2019-02-21 12:11:42 -08:00
Tyler Benson
49faeca145
Exclude groovy macro package from instrumentation
...
It generates a lot of noise when running tests and likely shouldn’t be instrumented.
2019-02-21 11:35:21 -08:00
Tyler Benson
dfe5cb57b2
Servlet migrate to decorators
2019-02-20 17:35:41 -08:00
Tyler Benson
13e708ec42
Akka and Apache HttpClient migrate to decorators
2019-02-20 17:02:05 -08:00
Tyler Benson
a98c22ac3a
Introduce base decorators
2019-02-20 16:11:18 -08:00
Tyler Benson
4dd4ee0c05
Trace Analytics Config
...
Also make the instrumentation names a sorted list so the evaluation order is consistent.
2019-02-20 10:56:14 -08:00
Tyler Benson
a7ebc9b3db
Deprecate WEB_SERVLET type
2019-02-20 08:42:39 -08:00
Tyler Benson
8512b841e6
Fix how we evaluate if customlogger is on classpath
...
Resources must replace `.` -> `/` and add `.class` to the end.
2019-02-15 15:00:25 -08:00
Nikolay Martynov
2d0636e158
Merge pull request #712 from DataDog/mar-kolya/limit-es-rest-tests
...
Limit ES-rest tests to 6.x.x versions
2019-02-15 09:54:34 -05:00
Tyler Benson
8d5aed7512
Merge pull request #705 from DataDog/tyler/synthetic-ignore
...
Exclude several type identifications from instrumentation
2019-02-14 16:46:59 -08:00
Nikolay Martynov
dd7981871f
Limit ES-rest tests to 6.x.x versions
...
It looks like beta 7.x.x was released and our instrumentation doesn't
work with it at the moment.
2019-02-14 17:43:44 -05:00
Nikolay Martynov
62e127896a
Merge pull request #706 from DataDog/mar-kolya/webflux-fixes
...
Improve webflux instrumentation
2019-02-14 17:41:59 -05:00
Nikolay Martynov
8e1382b4e4
Improve webflux integration
...
Add support for tracing Mono/Flux
2019-02-14 16:59:59 -05:00
Nikolay Martynov
13005d72cb
Add reactor-core instrumentation
2019-02-14 16:59:56 -05:00
Tyler Benson
c65c79207a
Remove `isSynthetic()` ignore
...
There’s concern that this will cause classes to be skipped that we do want to instrument.
2019-02-14 08:45:02 -08:00
Will Gittoes
7481a141c4
Added instrumentation to attach State to all Query objects, so they can be instrumented
2019-02-13 22:13:32 +11:00
Will Gittoes
b68563f5d1
Make tests work for StatelessSession as well as Session
2019-02-13 15:08:53 +11:00
Tyler Benson
e019fcbda5
Instrument SharedSessionContract instead of Session
2019-02-12 16:53:09 -08:00
Will Gittoes
180ba619a2
Move SessionFactory instrumentation into its own class
2019-02-13 10:32:09 +11:00
Will Gittoes
984f6aff68
Tests for Session methods
2019-02-12 17:22:43 +11:00
Will Gittoes
cd2467c76b
Use a generic Session MethodAdvice to instrument all synchronous Session methods; also support re-entrant Session methods
2019-02-12 17:01:37 +11:00
Tyler Benson
ccee63574d
Exclude several type identifications from instrumentation
...
I considered excluding Interfaces too, but that would break people that added `@Trace` to their default methods.
Just a hunch, but I don’t think we want to instrument classes marked as synthetic, for example proxies. We may want to extend this to our method matchers (and maybe exclude native methods too).
We might want to instrument enums/annotations, but that seems unlikely.
2019-02-11 16:23:08 -08:00
Tyler Benson
5bc3ec82c2
Merge pull request #697 from DataDog/tyler/gradle-upgrade
...
Upgrade Gradle to 4.10.3
2019-02-11 16:01:35 -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
Will Gittoes
724a59c347
Get initial hibernate tests working
2019-02-11 20:55:28 +11:00
Will Gittoes
e8f0eaf85e
Add basic Hibernate integration
2019-02-11 14:47:21 +11:00
Nikolay Martynov
3a0a471dd5
Close future's continuation on cancel even if future itself was not cancelled
2019-02-08 20:13:32 -05:00
Nikolay Martynov
9d830a3dab
Do not close parent scope when closing continuation in concurrent execution state
2019-02-08 20:13:32 -05:00
Tyler Benson
0802bb864c
Merge pull request #696 from DataDog/tyler/jmxfetch-config
...
JMXFetch bundled integrations disabled by default
2019-02-07 09:48:32 -08:00
Nikolay Martynov
931e6ff8af
Merge pull request #688 from DataDog/mar-kolya/webflux-fixes
...
Fix webflux integration to not rely in active span
2019-02-07 12:45:50 -05:00
Tyler Benson
000c0e4644
Upgrade Gradle to 4.10.3
...
Also try to improve build time performance by reducing the required configuration:
https://blog.gradle.org/preview-avoiding-task-configuration-time
2019-02-07 09:43:36 -08:00
Tyler Benson
4414dc2ad5
JMXFetch bundled integrations disabled by default
...
Enable each individually by setting `-Ddd.integration.<integration_name>.enabled=true`.
2019-02-06 13:00:52 -08:00
Nikolay Martynov
6de4f1b0ba
Merge pull request #694 from DataDog/mar-kolya/split-service-http-client-suggestions
...
Mar kolya/split service http client suggestions
2019-02-05 16:07:54 -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
65cece6741
Fix code coverage ignores.
2019-02-05 12:15:14 -08:00
Tyler Benson
12e7efc0b9
Review fixes
2019-02-05 11:58:36 -08: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
6cebabbada
Move integrations config to Config class.
2019-02-05 08:20:49 -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
Nikolay Martynov
a086f38f2f
Fix webflux integration to not rely in active span
...
Netty event loop instrumentation doesn't allow us to attribute work to
correct span so we have to maintain that manually.
2019-02-05 10:38:21 -05:00
Nikolay Martynov
f84e510f3e
Increase timeouts in JMS test to try to make it more stable
2019-02-05 10:10:49 -05:00
Nikolay Martynov
f3d3d1269a
Merge pull request #692 from DataDog/mar-kolya/netty-4.0-improve-test
...
Make test results in netty-4.0 client tests more readable
2019-02-05 09:35:55 -05:00
Nikolay Martynov
b25784e7a2
Make test results in netty-4.0 client tests more readable
2019-02-04 15:39:42 -05:00
Daniel Solano Gómez
4953a6c417
Skip clojure.lang.DynamicClassLoader
...
Not doing this seems to cause issues with Clojure protocols.
An application instrumented with the dd-java-agent that will
otherwise run fine will fail with ClassNotFoundException for
classes pertaining to Clojure protocols.
2019-02-04 07:12:29 -06:00
Tyler Benson
9353f82063
Merge pull request #686 from DataDog/tyler/jboss-jmxfetch
...
Initialize JMXFetch if configured log manager is on sys classpath
2019-01-31 15:24:55 -08:00
Tyler Benson
88d190d95b
Test for customlogmanager=false
2019-01-31 14:53:58 -08:00
Will Gittoes
558cd9a3b7
Merge pull request #683 from DataDog/willgittoes-dd/hystrix-operation-name
...
Hard-code Hystrix operation (span) name, leaving the resource name dynamic
2019-02-01 09:44:29 +11:00
Will Gittoes
99e4e52600
Fix style
2019-02-01 09:29:05 +11:00
Tyler Benson
e293ed477d
Fix tests.
2019-01-31 14:25:19 -08:00
Tyler Benson
f7abb2ac04
Initialize JMXFetch if configured log manager is on sys classpath
...
Some applications set java.util.logging.manager but never actually initialize the logger.
Check to see if the configured manager is on the system classpath.
If so, it should be safe to initialize jmxfetch which will setup the log manager.
2019-01-31 13:31:48 -08:00
Tyler Benson
c89b00f682
Elaborate on comment.
2019-01-31 11:14:06 -08:00
Tyler Benson
ea0dedcee7
Allow setting dd.app.customlogmanager=false to disable jboss check
2019-01-31 10:53:20 -08:00
Tyler Benson
ee8a26d4dc
Replace jboss classpath check with ENV check for jmxfetch delay
...
Some applications seem to have this jboss class on the classpath, but don’t actually use it. When coupled with not actually using JUL, this means that we may never actually start JMXFetch.
Checking for JBOSS_HOME instead should be safer.
2019-01-31 10:42:43 -08:00
Will Gittoes
a44b59bb14
Hard-code Hystrix operation (span) name, leaving the resource name dynamic
2019-01-31 14:30:08 +11:00
Will Gittoes
5941a93ad4
Merge pull request #679 from DataDog/willgittoes-dd/es-rest-6.4
...
Add support for Elasticsearch rest client 6.3 and above
2019-01-31 11:02:59 +11:00
Will Gittoes
57bae1688e
Review comments
2019-01-31 09:15:30 +11:00
Tyler Benson
bb2fbb30b8
Add logging to JMXFetch initialization delay
...
Otherwise it’s difficult to determine why JMXFetch isn’t being initialized.
2019-01-30 10:39:29 -08:00
Will Gittoes
56aaccb0c2
Remove commented code
2019-01-30 17:42:41 +11:00
Will Gittoes
f15a2ffd79
Add support for ES rest client 6.3 and above
2019-01-30 17:39:20 +11:00
Tyler Benson
2971d1b0d3
Ensure the copyMetricConfigs task runs after processResources
...
Otherwise there seems to be a race condition which results in the metric config files being overwritten.
2019-01-28 13:43:07 -08:00
Nikolay Martynov
ee3788bfdc
Merge pull request #672 from DataDog/mar-kolya/more-forkjoin-instrumentations
...
More ForkJoin instrumentations
2019-01-28 14:01:03 -05:00
Nikolay Martynov
f8aed7aec7
Provide seprate instrumentation names for Akka and Scala ForkJoin instrumentations
2019-01-28 11:29:59 -05:00
Nikolay Martynov
f7844f763c
Instrument Akka and Scala ForkJoinTask and ForkJoinPool
2019-01-25 16:15:48 -05:00