Commit Graph

345 Commits

Author SHA1 Message Date
Laplie Anderson fa378e16d3 Simply since the agent code doesn't run without java.instrument 2019-09-04 13:11:03 -04:00
Laplie Anderson 7a0ba452b8 Module smoke test framework 2019-09-04 13:11:03 -04:00
Tyler Benson e74167adf2 Update Play instrumentation to work with 2.7
(Don’t be surprised when things break with 2.8… They’re religious about removing deprecated methods on minor release versions.  If they followed standard convention, they’d likely be on at least 11.x.)

Add client test for 2.4-2.5 http library.  2.6+ won’t work because the underlying frameworks we instrument are shaded.

Also add server tests.  We could do a lot more testing since it seems play still supports using Netty as the backing server even though it’s not the default.  It’s difficult to do extensive testing though because they have so many breaking changes between versions.
2019-08-22 12:43:13 -07:00
Tyler Benson f5b73260ed Add instrumentation and tests for Grizzly 2.x Http Server 2019-08-13 16:05:11 -07:00
Laplie Anderson b57282daa4
Merge pull request #922 from DataDog/landerson/cli-test
Cli Application Smoke Test
2019-07-25 12:30:53 -04:00
Laplie Anderson 41a2e7b51a Cli Application smoke test
simple cli application and test
2019-07-18 11:14:59 -04:00
Laplie Anderson 0f9b28df27
Merge pull request #914 from DataDog/landerson/google-http-client
Instrumentation of Google Http Client
2019-07-17 16:17:38 -04:00
Tyler Benson 4486c3a6ff Change jax-rs-client project names to match versions 2019-07-10 13:25:48 -06:00
Luca Abbati b62266fd52
First draft of jersey 1.19 client instrumentation 2019-07-09 21:13:00 -04:00
Laplie Anderson f53b14bd0f Stub google http client integration 2019-07-09 17:17:41 -04:00
Luca Abbati dcf0f57030
Add support for log4j 1.x 2019-06-20 16:08:49 -04:00
Luca Abbati d9eb480f3c
Rename log4j2 module to reflect library name 2019-06-19 12:35:22 -04:00
Luca Abbati 22477efb7a
Add basic support for log4j ThreadContext for log injection. 2019-06-19 12:34:39 -04:00
Tyler Benson d26edd6c17 Ensure gradle runs base mongo test first
Otherwise there is a race condition between the projects initializing the mongo instance.
2019-06-13 10:44:42 -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 0c52ba58c4
Move glassfish 4 compatibility layer to instrumentation module 2019-05-27 15:17:04 +02: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 2acaeb3dfb Revert minor changes. 2019-04-17 16:23:15 -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 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 8c5158f8e9
Restructure hibernate integration 2019-03-20 11:00:42 +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 3b6c688ce8
Support Hibernate 3.5 2019-03-19 09:56:39 +11:00
Will Gittoes 2ceeb4dc14
Additional instrumentation for hibernate 4.3 and 5.x onwards 2019-03-13 13:52:33 +11:00
Will Gittoes bf110640e8
Merge branch 'master' into willgittoes-dd/hibernate-integration 2019-03-12 09:39:58 +11: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 e05429a9ff
Rename to hibernate-5 2019-03-06 10:12:52 +11:00
Nikolay Martynov aa031cc708 Add instrumentation for Tomcat webapp classloading 2019-02-28 12:58:08 -05:00
Will Gittoes 8985d6fd07
Merge branch 'master' into willgittoes-dd/hibernate-integration 2019-02-26 12:03:08 +11:00
Tyler Benson db47fde8d1 Group Elasticsearch instrumentation into common folder
Also migrate to decorator.
2019-02-22 13:28:11 -08:00
Nikolay Martynov 13005d72cb Add reactor-core instrumentation 2019-02-14 16:59:56 -05:00
Will Gittoes e8f0eaf85e
Add basic Hibernate integration 2019-02-11 14:47:21 +11:00
Will Gittoes f15a2ffd79
Add support for ES rest client 6.3 and above 2019-01-30 17:39:20 +11:00
Nikolay Martynov f7844f763c Instrument Akka and Scala ForkJoinTask and ForkJoinPool 2019-01-25 16:15:48 -05:00
Tyler Benson 03bcdc97cc Move awaitGC to common utility package 2019-01-25 10:32:09 -08:00
Nikolay Martynov 62402a6426 AWS SDK2 instrumentation 2019-01-25 12:02:31 -05:00
Tyler Benson 0a89074f60
Merge pull request #653 from marcoferrer/instrument-kt-coroutine-scheduler
Add support for instrumenting kotlin coroutine schedulers
2019-01-22 10:31:32 -08:00
Andrew Kent 6ffaa9e04f Remove jre logging integration 2019-01-16 08:59:10 -08:00
Andrew Kent 6089dc60ba SpringBoot smoke test 2019-01-10 09:06:22 -08:00
Marco Ferrer a31abc67e9 add support for instrumenting kotlin coroutine schedulers 2019-01-09 19:04:42 -05:00
Gary Huang 55787b4fb4
Move to dd-smoke-test project 2019-01-08 23:12:28 -05:00
Gary Huang 071a545403
Add Play Smoke Test with Java Agent
Adding gradle task & test to compile and start a Play server with the agent, hits a welcome endpoint 200 times as a smoke test.
2019-01-08 23:04:43 -05:00
Gary Huang e1922ed8ba
Move to top level subproject 2019-01-08 20:11:11 -05:00
Tyler Benson 6a09f6e2b9 Moves all ittests to be tests under dd-java-agent.
This was weird having it as a separate project.  Reduces the number of top level directories.

There weren’t any existing tests in dd-java-agent’s test directory, so this seemed like a good place to put them.
2019-01-04 15:25:36 -08:00
Andrew Kent 2861d87071 slf4j MDC autoinjection integration 2018-12-19 17:09:00 -08:00
Gary Huang 34658aabcb
Play Server Performance Testing
Set up gradle sub project
2018-12-14 11:18:58 -05:00
Andrew Kent 1004ee4ef7 Patch java.util.logging.Logger for safe use with jmxfetch 2018-12-11 17:26:02 -08:00
Andrew Kent 0e6a416b57 Initial gradle projects 2018-12-03 11:45:29 -08:00
Gary Huang 9b3019c612
Merge pull request #487 from DataDog/gary/muzzle-aws-sdk
Muzzle AWS SDK Instrumentation
2018-10-19 15:31:25 -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
Nikolay Martynov 403040bac0 Use JMXFetch as a library 2018-10-18 09:46:44 -04:00
Gary fadf676b6e
Combining AWS instrumentations. Test for both 1.11.0 and 1.11.106 since builder was not available in 1.11.0. 2018-10-18 09:28:39 -04:00
Tyler Benson 8ff5c7c36c Review fix comments and version range. 2018-10-18 16:08:37 +10:00
Nikolay Martynov 739f2d0daa Add tests for vertx HTTP server 2018-10-17 14:47:28 -04:00
Tyler Benson 8ffeb5bedf Add instrumentation for RabbitMQ’s AMQP library 2018-10-17 16:32:24 +10:00
Tyler Benson 14846a79df Add Dropwizard-views instrumentation 2018-10-11 14:39:04 +10:00
Tyler Benson 4eb0cd4097 Refactor Apache HttpClient Instrumentation.
Removes the need for DDTracingClientExec.
Reduces extra spans.
Does not include a span for each redirect.
Compatible with 4.0+ instead of just 4.3+.
2018-09-28 17:52:39 -04:00
Gary 33ab8d0072
Expand instrumentation version range and rename package 2018-09-26 22:31:23 -04:00
Gary Huang 89d83663c7
Merge pull request #493 from DataDog/gary/muzzle-datastax-cassandra
Muzzle and Expand Cassandra Instrumentation
2018-09-19 16:38:06 -04:00
Tyler Benson de21c7b245 Review fixes. 2018-09-12 10:32:05 +10:00
Tyler Benson 6732110f28 Handle connection failures for Jersey and Resteasy
CXF and other client frameworks will still lose the span and miss the error.
2018-09-12 10:10:31 +10:00
Andrew Kent faad7824ed Elasticsearch 5.3.0 instrumentation 2018-09-11 16:00:38 -07:00
Gary Huang a366ed9e80
Muzzle and Expand Cassandra Instrumentation
Add muzzle block and remove class loader matcher method. Muzzling the instrumentation works for versions 2.3+
2018-09-10 18:33:17 -04:00
Tyler Benson 2761615436 Couchbase instrumentation 2018-09-05 14:46:22 +10:00
Gary Huang 5f137beb9a
Merge pull request #460 from DataDog/gary/spring-webflux-instrumentation
Spring webflux instrumentation
2018-09-04 13:38:06 -04:00
Gary Huang c87fec36ac Spring webflux instrumentation
instruments spring webflux 5+
2018-08-31 14:31:03 -04:00
Tyler Benson 9cf7b28e88 Make JMS more resilent to property failure
Combine into single module and add test.
Replace classLoaderMatcher with muzzle check.

Thanks for the tip @adriancole.
2018-08-31 16:10:14 +10: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
Andrew Kent a8a4ff2c23 Remove classloader instrumentation 2018-07-10 17:26:49 -04:00
Gary Huang 46e7036701 fix version scan and test versions 2018-06-25 16:54:45 -04:00
Gary Huang b1d06299cc JSP instrumentation
WIP: more unit tests to come
2018-06-22 18:24:06 -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
Tyler Benson 9b3df4ff9e Netty HTTP client and server instrumentation first pass
Doesn’t target right versions. Needs lots of testing.
2018-06-18 12:52:42 +10:00
Andrew Kent 109f2cead4 Akka-http instrumentation and test 2018-06-15 12:48:57 -07:00
Nikolay Martynov 63c4cdff87 Memcached testing: add support for testoingcontainers 2018-06-13 13:06:23 -04:00
Gary Huang 1213311418 lettuce redis client sync and async api instrumentation with sync unit tests complete 2018-06-08 23:53:13 -04:00
Tyler Benson 9ff09b93e1 Refactor HttpUrlConnection Instrumentation
getOutputStream shouldn’t call getResponseCode, otherwise the request gets screwed up.
2018-06-07 16:25:38 +10: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 2526d30532 Remove examples and cleanup ignores 2018-05-24 11:13:00 +10:00
Tyler Benson 0cf8fef8d8 Elasticsearch Instrumentation 2018-05-23 11:29:13 +10:00
Tyler Benson a3a1b08fa9 Fix AWS version ranges 2018-05-22 16:45:01 +10:00
Tyler Benson 7c4d42ef8a Add additional test task for testing latest versions of a dependency 2018-05-04 14:04:30 +10:00
Tyler Benson 660dfc834c It actually isn’t compatable until 1.4 2018-05-04 14:03:48 +10:00
Tyler Benson be34eaf032 Instrument HystrixCommand and HystrixThreadPool 2018-05-04 14:03:48 +10:00
Tyler Benson 3db2d654f1 Fix spark instrumentation
and rebase off master.
2018-04-26 17:01:45 +10:00
Jørgen Grøndal 7e233ac3c7 feat: find oldest supported spark, update version, make tests run 2018-04-26 14:53:32 +10:00
Jørgen Grøndal d0822c7458 fix: support jetty 8+, sparkjava 2.5+ 2018-04-26 14:53:32 +10:00
Jørgen Grøndal 8bfeae4a82 fix: formatting and add version to spark java instrumentation 2018-04-26 14:53:32 +10:00
Jørgen Grøndal c49d4f6dd8 fix: add jetty handler instrumentaiton. remove filter3instrumentation. add sparkjava routematch instrumentation 2018-04-26 14:53:32 +10:00
Jørgen Grøndal 91aa3c854d fix: first attempt at sparkjava trace instrumentation 2018-04-26 14:53:32 +10:00
Jon Mort 1ba0b69750
Resource naming and other review comments 2018-04-18 11:42:49 +01:00
Jon Mort 582c0af962
Rename to Ratpack 1.4 2018-04-18 11:42:49 +01:00
Jon Mort 6e92221e5a
Ratpack instrumentaiton support 2018-04-18 11:42:48 +01:00
Tyler Benson 001e59e0cc Build with Java 8, but run tests with other JDKs
Use workspaces to persist build between jobs.
2018-04-16 14:36:38 +08:00
Andrew Kent fc27e6b5ae Revert "Move play2.6 tests out of subproject and into sourceSet"
This reverts commit 2a42f7dc7d.
2018-04-08 10:10:12 -07:00
Andrew Kent 2a42f7dc7d Move play2.6 tests out of subproject and into sourceSet 2018-04-06 14:03:20 -04:00
Andrew Kent 2449810ce0 Play 2.4 and 2.6 testing 2018-04-05 17:58:04 -04:00
Andrew Kent 772872bcb5 Play Instrumentation 2018-03-28 10:26:57 -07:00
Andrew Kent 0714139b31
Merge pull request #264 from DataDog/ark/bs-testing
Akka Instrumentation
2018-03-20 09:42:18 -07:00
Andrew Kent 714afba71b Akka actor instrumentation 2018-03-20 09:31:54 -07:00
Tyler Benson 19b94da7bb JAX-RS Client Tracing 2018-03-20 08:54:09 +08:00
Andrew Kent 5a97c1e5bb Copied scala tests over from integration tests 2018-03-19 16:07:45 -07:00
Tyler Benson 0fbec69b6d
Merge pull request #253 from DataDog/tyler/traceinterceptor
Implement the TraceInterceptor API
2018-03-13 08:30:01 +10:00
Andrew Kent 9a83413141 Executor Instrumentation for Scala 2018-03-09 11:50:39 -08:00
Tyler Benson 286e9d2d00 Add instrumentation to catch additional classloaders.
Still doesn’t work with Spring Boot because the way they structure their Jars.
2018-03-09 14:32:41 +10:00
Tyler Benson 163b285868 Rename to jedis-1.4 since that’s the earliest working version
Also change instrumentation binding for better coverage.
2018-02-23 13:04:46 +10:00
Tyler Benson f4d2e6f600 Merge branch 'master' into jedis 2018-02-22 16:44:44 +10:00
Andrew Kent 64e2173bf7 Set bootstrap delegation for osgi classloading 2018-02-15 19:17:19 -08:00
Andrew Kent 1820fbcbfd Bootstrap delegation for wildfly/jboss 2018-02-15 19:17:19 -08:00
Andrew Kent cfef64b026 Reorganize dd-java-agent subprojects 2018-02-15 18:55:02 -08:00
Tyler Benson c9da16f334 Add resource naming instrumentation for jax-rs 2018-02-14 19:18:01 +10:00
Gihad Murad 1d35938996 Merge branch 'master' into jedis 2018-02-05 13:00:13 -05:00
Gihad Murad cef86291e3 Added Redis instrumentation via Jedis client 2.9 and changed spring-boot-jdbc to spring-boot-jdbc-redis 2018-02-05 12:59:42 -05:00
Tyler Benson 4314f71ab7 Kafka and Kafka Streams instrumentation
This includes propagation and traces for producers and consumers.
2018-02-01 20:04:40 +10:00
Tyler Benson 64d39030e5 Use workflows in Circle to test Java 7 and 8
Java 9 is commented out because there are some test failures that will be investigated later.

Some tests had to be excluded from Java 7 because they don’t have a Java 7 compatible version.
2018-01-22 13:46:50 -05:00
Tyler Benson 6d3d88987b Rename dd-trace-annotations to dd-trace-api
And move DDTags over to it.
Move some `datadog.trace.api` classes over to `datadog.trace.common`.
Other misc renaming.
2018-01-09 10:07:36 +10:00
Tyler Benson becf2a5862 Lots of renaming
Module:
dd-trace -> dd-trace-ot

Packages:
Standardize on `datadog.trace` and `datadog.opentracing` as the package prefixes.
2018-01-09 10:02:06 +10:00
Tyler Benson eeb17c4522 Move @Trace and JDBC instrumentation to individual modules 2018-01-04 16:20:26 +10:00
Andrew Kent ef3ba8be60 Move dd-java-agent-perftest to dd-java-agent subproject. 2018-01-02 12:17:18 -08:00
Andrew Kent 599211e750 Simple jetty perf test 2018-01-02 09:13:42 -08:00
Andrew Kent e65132e462 Perf Test Project 2018-01-02 09:13:42 -08:00
Andrew Kent 99442cdca7 Agent Testing Project 2017-12-28 09:46:08 -08:00
Tyler Benson 02460060bc Misc cleanup
Remove out of date “async-tracing” example since it’s more about byteman and no longer relevant.

Minor changes to improve the code test coverage…
2017-12-21 16:31:03 -08:00
Andrew Kent f68406113a Remove helpers from agent 2017-12-18 16:44:12 -08:00
Tyler Benson d933a4049a Move OkHttp instrumentation to byte buddy 2017-12-06 18:07:17 -08:00
Tyler Benson f807a5da18
Merge pull request #163 from DataDog/tyler/jmh-retransform
Add JMH Benchmarks
2017-12-06 08:04:07 -08:00
Tyler Benson caf3953360 Add JMH Benchmarks 2017-12-04 17:30:54 -08:00
Andrew Kent 6fa303058f ApacheHttpClient bytebuddy instrumentation and tests. 2017-12-01 10:54:32 -08:00
Andrew Kent 7298b0a31a Convert datastax cassandra instrumentation to bytebuddy 2017-11-28 17:01:04 -08:00
Andrew Kent 47b1eec6da Mongo Async Instrumentation and embedded mongo tests. 2017-11-27 09:18:49 -08:00
Tyler Benson 871ce37f80 Migrate JMS to Byte Buddy and add JMS 1 support
This does not yet include instrumentation for MessageListener.
I think there is actually no difference between the instrumentation so we should combine them.
I also added TEXT_MAP as a format that maps to the HTTP Codec.  There is some remapping inside the instrumentation to remove dashes before setting as a property.  This should also be changed when an official format is defined.

This also currently has a problem with Spring Boot applications as the JMS Util references classes not on the system classpath (it needs to be injected into the child classpath)
2017-11-17 12:06:30 -08:00
Tyler Benson e8bbc849bb Set resource name using the route pattern from spring.
This provides a better static resorce name than trying to conjure one out of the original URL.
2017-10-30 13:24:18 -07:00
Tyler Benson 30721d00dc Replace tomcat/jetty specific integ with generic servlet integ.
This should also work with things like Weblogic and Websphere with the main requirement being Servlet 2.3 or above compatibility.
2017-09-20 16:39:43 -07:00
Tyler Benson a8908c06d8 Move helpers to a separate project for future bundling
This will allow us to eventually inject these classes in the correct classpath rather than having them on the system classpath.
2017-09-05 12:19:22 -07:00
Tyler Benson 9a9da92b59 Add version checking via class/method for jetty 2017-08-24 17:38:16 -07:00
Tyler Benson 988a3d0fdf Cleanup plugin and add identifying classes to config
Still missing jetty since that requires method level searching.
2017-08-18 11:11:37 -06:00
Tyler Benson 9b73fed3c5 Add plugin that scans for classes unique to version range
Does not include method signatures yet.  Still a work in progress.

Execute with `./gradlew scanVersions --parallel`.
Using `--parallel` is strongly recommended.
2017-08-18 11:11:37 -06:00
Emanuele Palazzetti d10e8e0c34 [example] add Spark framework example (#60)
* [example] add Spark framework example
* [example] formatting
2017-07-27 21:09:58 +02:00
Tyler Benson e8dbc34bea Apply consistent formatting to other files 2017-07-19 08:09:19 -07:00
Tyler Benson 8d9bdef4b7 Rename build.gradle scripts to match project name.
This will help in finding build scripts inside the IDE.
2017-07-10 16:12:15 -07:00
Tyler Benson 5a6bd2d002 Add gradle build scripts.
Currently has issues with shadow jar due to Java 9 compiled classes inside byteman used by dd-java-agent.
2017-06-30 11:35:57 -07:00