Commit Graph

987 Commits

Author SHA1 Message Date
Luca Abbati e1ceda8f0e
Improve config usage as instance based on CR 2019-06-12 14:00:36 +02:00
Nikolay Martynov 6d5972bce1 Make agent-tooling compile-depend on dd-tracing-ot directly
This ensures that `dd-tracng-ot` gets included into shadow jar.
Before this patch it was included only 'by accident' via some
transitive dependencies of some instrumentations.
2019-06-11 14:49:44 -04:00
Tyler Benson 3c68c09101 Review fixes. 2019-06-11 11:12:50 -07:00
Tyler Benson 1a5a70650c Fix SpringJpaTest 2019-06-10 17:18:58 -07:00
Tyler Benson 4469c7fb11 separate out driver subtype
to avoid changing existing service names
2019-06-10 16:17:36 -07:00
Tyler Benson 288add2a60 Fix slickdb test 2019-06-10 15:20:56 -07:00
Tyler Benson 0807598d16 Populate settings from properties and add MariaDB alt styles 2019-06-10 12:02:14 -07:00
Tyler Benson ec60d679d6 Add Oracle support and fix muzzle. 2019-06-06 18:03:56 -07:00
Nikolay Martynov 822efd5df5 Skip couchbase 2.7.5 version in muzzle
This should make muzzle test pass. 2.7.5 was broken during its release.
2019-06-06 17:50:58 -04:00
Nikolay Martynov 0851dc4826 Undo Couchbase gradle hack
Looks like 2.7.5 has now fully propagated through the mirrors so we
can revert hack that made things compile.
2019-06-06 17:44:59 -04:00
Luca Abbati 1dc8467c26
Merge branch 'master' of github.com:DataDog/dd-trace-java into labbati/non-static-config 2019-06-06 18:11:43 +02:00
Nikolay Martynov eddf5d98d8 Undo akka latest dep hack 2019-06-06 10:05:18 -04:00
Tyler Benson 6100443443 Attempt to properly parse out instance name from JDBC url
Unfortunately implementations are INCREDIBLY inconsistent on the matter.  Oracle implementation is still pending since it’s really complicated.
2019-06-05 18:01:33 -07:00
Luca Abbati b6572bfd55
Reset test tracer in TraceAnnotationsTest to pick new configs 2019-06-05 18:52:25 +02:00
Luca Abbati ae03abe63c
Adapt tests to the new Config approach instance vs static 2019-06-05 12:17:09 +02:00
Luca Abbati 901efee50e
Remove static usage of low level config methods from outside the config class 2019-06-04 15:13:40 +02:00
Tyler Benson 8016e22bc4 Review changes 2019-05-31 09:07:22 -07:00
Tyler Benson 9cdf049ca7 Extract ConfigUtils 2019-05-30 09:09:29 -07:00
Tyler Benson a7c941c2ea More fixes.
Notably added a transformer to make config easier to test with by making INSTANCE public static volatile.
2019-05-29 22:24:19 -07:00
Tyler Benson fc9f1d120c Misc fixes. 2019-05-29 13:54:35 -07:00
Tyler Benson e260b1d044 Make all http client tests extend HttpClientTest
Add flexibility to handle inconsistencies between client integrations.
2019-05-29 13:54:35 -07:00
Tyler Benson 8c860d63a4 Revert Pull Request #854 and #855
These are breaking changes that need more vetting.
2019-05-29 12:18:31 -07:00
Luca Abbati eb032d1c8e
Adding muzzle tests for glassfish 3 and 5 2019-05-29 17:53:42 +02:00
Luca Abbati 19c0b21332
Remove useless tests from Glassfish 4 instrumentation 2019-05-29 17:24:51 +02:00
Luca Abbati 37b734dd50
Some more attempts to UT glassfish classloader 2019-05-28 19:39:11 +02:00
Luca Abbati f62e1dedeb
Add unit tests for glassfish 4.1 instrumentation 2019-05-28 15:06:43 +02:00
Luca Abbati 470a20dbce
Fix code formatting 2019-05-28 13:56:37 +02:00
Luca Abbati 5292b598d8
Remove log from GlassfishAdvice as log is not available 2019-05-27 16:20:46 +02:00
Luca Abbati 9d2523a58a
Reformat code 2019-05-27 15:50:47 +02:00
Luca Abbati 13cf53827d
Merge branch 'master' of github.com:DataDog/dd-trace-java into labbati/jdbc-error-glasshfish 2019-05-27 15:18:18 +02:00
Luca Abbati 0c52ba58c4
Move glassfish 4 compatibility layer to instrumentation module 2019-05-27 15:17:04 +02:00
Nikolay Martynov 70fa97f8c2 Move code to make java7 happy 2019-05-24 16:55:39 -04:00
Nikolay Martynov ef94e2fb79 Add note about Kafka consumer iterator thread safety 2019-05-24 16:37:27 -04:00
Nikolay Martynov a3a325868c Add some rudimetrary tests for CompletableFuture 2019-05-24 16:36:07 -04:00
Nikolay Martynov 0b85f048d1 Handle Scope in Kafka producer properly
Holding onto scope in `Callback` is bad because that code may run on
different thread.
2019-05-24 16:27:28 -04:00
Luca Abbati a3a98ceac8
Merge pull request #856 from DataDog/labbati/set-spring-controller-async
Make spring controller spans to handle async
2019-05-24 18:47:35 +02:00
Luca Abbati 25e06b4965
Make spring controller spans to handle async 2019-05-24 17:42:06 +02:00
Nikolay Martynov 82f1a485d5
Merge pull request #855 from DataDog/mar-kolya/rabbitmq-client-service-name
Use default service name for RabbitMQ consumer
2019-05-24 10:51:28 -04:00
Nikolay Martynov a7271ed2b2 Use default service name for RabbitMQ consumer
So spans parented by consumer span had reasonable service name
2019-05-24 09:06:22 -04:00
Nikolay Martynov 80a5cc6025 Set kafka client service name to application default service name.
So that spans inheriting from that client span have application
service name rather than 'kafka'
2019-05-23 20:21:03 -04:00
Nikolay Martynov c5dbd7d0d7 Fix ApacheHttpAsync race condition 2019-05-17 13:49:46 -04:00
Nikolay Martynov 47e6216e6b
Merge pull request #842 from DataDog/mar-kolya/limit-couchbase-latest-dep-version
Do not try to build against couchbase 2.7.5 since it didn't sync up w…
2019-05-17 13:14:34 -04:00
Nikolay Martynov 48f951cee7
Merge pull request #841 from DataDog/mar-kolya/ignore-flaky-test
Wait for span to finish in apache-http-aync test
2019-05-17 13:13:38 -04:00
Tyler Benson d900289ae0 Try again… 2019-05-17 10:01:37 -07:00
Nikolay Martynov e52c654fd1 Wait for span to finish instead of ignoring test 2019-05-17 12:55:34 -04:00
Tyler Benson b6ba1997ae Add constraint for muzzle too 2019-05-17 09:32:15 -07:00
Nikolay Martynov 6287e552fc
Merge pull request #836 from DataDog/mar-kolya/do-not-send-headers-to-old-kafka
Do not send headers to old kafka servers
2019-05-17 11:55:52 -04:00
Nikolay Martynov d01832a94d Do not try to build against couchbase 2.7.5 since it didn't sync up with mirrors yet 2019-05-17 11:27:35 -04:00
Nikolay Martynov c02110a2a1 Add comment explaining Kafka versions limitations check 2019-05-17 11:22:02 -04:00
Nikolay Martynov 387f094617 Ignore flaky apache-http-aync test 2019-05-17 11:19:24 -04:00
Nikolay Martynov 94907270a2
Merge pull request #837 from DataDog/mar-kolya/fix-apache-async-instrumentation-with-null-callback
Handle null callback in HttpAsyncApache instrumentation
2019-05-16 17:41:39 -04:00
Nikolay Martynov b736ca3108 Handle null callback in HttpAsyncApache instrumentation 2019-05-16 17:26:08 -04:00
Nikolay Martynov 55d7c2a6f5 Do not send headers to old kafka servers
Kafka message bundles with versions below 2 (e.d. 0.10) do not support
headers so do not inject them. Otherwise client gets really upset.

This is how similar check is being done in Kafka client itself:
05fcfde8f6/clients/src/main/java/org/apache/kafka/common/record/MemoryRecordsBuilder.java (L411-L412)
2019-05-16 15:09:58 -04:00
Tyler Benson 354d17ac7d
Merge pull request #830 from DataDog/tyler/executor-config
Add config to enable individual executors
2019-05-16 10:05:29 -07:00
Tyler Benson 3bbf9f27eb Fix resource name for Ratpack
Previous fallback would inadvertently include query parameters in the resource name.
2019-05-15 16:30:51 -07:00
Tyler Benson cc23fee614 Add config to enable individual executors
Or all executors, bypassing the allow list.

`dd.trace.executor=com.MyCustomExecutor,com.OtherExecutor`
`dd.trace.executors.all=true`

Turns out in many cases, executors that we say we’re skipping, are still being traced because they extend from an already instrumented executor.
2019-05-14 10:03:44 -07:00
Nikolay Martynov 2984cc506e Limit okhttp latest deps test to 3.x.x 2019-05-09 10:17:35 -04:00
Tyler Benson 376451c031 Fix instrumentation names for apache httpasyncclient 2019-05-03 09:58:05 -07:00
Tyler Benson 4b1fcdea04 Remove latest dep test for transport-5 2019-05-02 14:44:31 -07:00
Tyler Benson 0a234872e9 Try limiting latest to 5.1.x 2019-05-02 14:04:07 -07:00
Tyler Benson 8a38b6fc1e Skip ES tests in CI. 2019-05-02 12:26:39 -07:00
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 c8743fce64 Remove potentially dangerous recursive call. 2019-04-30 14:53:15 -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 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 746c423199
Merge pull request #775 from darylrobbins/twilio
Twilio SDK Instrumentation
2019-04-19 09:18:40 -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
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
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 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 af0f37861b
Support Hibernate 3.3 2019-03-21 13:38:16 +11:00
Will Gittoes c369fafe8c
Support muzzle testInverse = true 2019-03-21 12:17:24 +11: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
Will Gittoes 8c5158f8e9
Restructure hibernate integration 2019-03-20 11:00:42 +11: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
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
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