Commit Graph

1087 Commits

Author SHA1 Message Date
Tyler Benson 0bb20abfce Set user.principal in a way spring security can be covered
Improve tests.
2018-11-14 11:30:05 -08:00
Tyler Benson 5381461da2 Apply limits for Elasticsearch
6.5 has api changes that break our tests.
2018-11-14 10:55:18 -08:00
Tyler Benson b58b54dab9 Limit Lettuce/Webflux versions and fix test for tomcat 9+ 2018-11-12 12:33:34 -08:00
Tyler Benson 51dfd2b184 Fix latestDepTests for Jetty 2018-11-12 11:05:02 -08:00
Tyler Benson 5e194ef06c Fix latestDepTests for Kafka Streams, Netty, and Okhttp 2018-11-12 08:15:24 -08:00
Gary a2a194d48a Fix latestDepTest for JSP instrumentation.
Normalize jsp.requestUrl tag value because Tomcat 9 seems to add relative path symbols of jsp files.

Tomcat 9 doesn't automatically create a connector, causing failures in latestDepTest. Tomcat 9 also seems to have small changes that effect some of the tests, such as changing the exception type and also removal of the exception message in one of the tests.
2018-11-12 08:15:24 -08:00
Tyler Benson 9bd2b86d2e Add assertion to ensure latestDepTest dependencies are different from test. 2018-11-12 08:15:24 -08:00
Gary 9d7d40565a
Limit AMQP LatestDepTest to use last working version
Makes AMQP LatestDepTest not use the latest version because it uses a snapshot version of spring, causing error when downloading.
2018-11-09 11:09:04 -05:00
Nikolay Martynov 98efa8aaa3
Merge pull request #566 from DataDog/mar-kolya/specify-scala-dependency
Mar kolya/specify scala dependency
2018-11-05 21:05:54 -05:00
Nikolay Martynov 9c652cc5b2 Remove duplicate class names from ExecutorInstrumentation 2018-11-05 12:55:32 -05:00
Nikolay Martynov b8276ac70b Specify Scala dependency in single place 2018-11-05 12:55:32 -05:00
Andrew Kent 1667e590b9 Log Java and JVM version info. 2018-11-02 17:12:00 -07:00
Nikolay Martynov 3c0ba56d2c Make context maps 'global' for a given key class name
This ensures that different instrumenters using same key class can see
each others state
2018-11-02 12:59:30 -04: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 387068caf8
Merge pull request #558 from DataDog/ark/helper-injector-classloader
Inject dynamic classes into bootstrap class loader
2018-11-01 22:19:49 +00:00
Andrew Kent d0b00e0dc0 Inject all map holder classes into the bootstrap 2018-11-01 15:05:20 -07:00
Nikolay Martynov 13a8add2e7
Merge pull request #559 from DataDog/mar-kolya/add-lost-jdbc-statement-logging
Catch `AbstractMethodError` when trying to unwrap jdbc connection
2018-11-01 11:50:44 -04:00
Nikolay Martynov 15024915bf Catch `AbstractMethodError` when trying to unwrap jdbc connection
jdts throws this exception since they just have 'stub' umplementation.
2018-11-01 09:57:18 -04:00
Andrew Kent 5f0f6f1474 Inject dynamic classes into topmost class loader 2018-10-31 16:11:52 -07:00
Nikolay Martynov e83c379992
Merge pull request #557 from DataDog/mar-kolya/add-lost-jdbc-statement-logging
Add logging in jdbc instrumentation when we cannot unwrap connection
2018-10-31 15:55:03 -04:00
Nikolay Martynov 8a066de772 Add logging in jdbc instrumentation when we cannot unwrap connection 2018-10-31 13:38:37 -04:00
Andrew Kent 6198662984
Merge pull request #555 from marcoferrer/grpc-tracing-kotlin-exception-support
Catch and log throwables to support kotlin exception handling
2018-10-31 03:44:15 +00:00
Marco Ferrer 1bd97a0f90 catch and log throwables to support kotlin exception handling 2018-10-30 23:00:29 -04:00
Andrew Kent 5824eb83b8
Merge pull request #537 from DataDog/ark/instrumentation-context-outline
instrumentation context map-backed impl
2018-10-29 18:48:23 +00:00
Nikolay Martynov ff9e5ba99f Increase couchbase timeout
It looks like Couchbase is often really slow to start.
2018-10-26 17:08:36 -04:00
Andrew Kent b89aa54a93 Move ASM visiting method into context-store impl 2018-10-26 14:06:57 -07:00
Andrew Kent cc27f1507e Javadoc for map-backed context store. Type info on context store api 2018-10-26 13:41:24 -07:00
Andrew Kent 0fa35a0654
Merge pull request #548 from DataDog/tyler/remove-releases
Remove historical releases
2018-10-26 19:17:36 +00:00
Nikolay Martynov aba0c3377d Use offer instead of add when trying to test-insert element into the queue on ThreadPoolExecutor instrumentation 2018-10-24 15:13:40 -04:00
Nikolay Martynov faad1d92b0 Clarify output of Hystrix test 2018-10-24 15:13:21 -04:00
Tyler Benson ad48630171 Remove historical releases
Previously kept for comparing benchmarks across versions, but they can be downloaded as needed.  Don’t need to be kept in the history.
2018-10-24 10:18:30 +10:00
Tyler Benson 8464353bc3
Merge pull request #545 from DataDog/mar-kolya/update-jmx-fetch
Update jmxfetch to latest version
2018-10-24 08:40:59 +10:00
Nikolay Martynov 14e85941c0
Merge pull request #547 from DataDog/mar-kolya/weak-concurrent-map-thread-cleanup
Mar kolya/weak concurrent map thread cleanup
2018-10-23 18:12:24 -04:00
Nikolay Martynov fc13d7db2b Reorganize WeakConcurrent implementation to allow cleanup thread GC when map is out of scope 2018-10-23 16:30:51 -04:00
Nikolay Martynov 14ad40f598 Update jmxfetch to latest version
No functional changes but this is the first version published on Maven Central
2018-10-23 09:56:54 -04:00
Tyler Benson 041b9c30d4 Fix failing test from master. 2018-10-23 17:35:00 +10:00
Nikolay Martynov 4e6f179a7a
Merge pull request #543 from DataDog/mar-kolya/jmxfetch-additional-tags
Add config for tags that propagate to JMXFetch and spans
2018-10-22 20:56:56 -04: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 13c91d11e5 Upgrade shadow to 4.0.1 and exclude module-info.class files. 2018-10-22 10:44:04 +10:00
Tyler Benson 192b0fd478 misc minor changes 2018-10-22 10:44:04 +10:00
Andrew Kent 7547e0fc5e Cleanup and javadoc 2018-10-19 13:07:11 -07: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
Tyler Benson b693335ef5 Add routing key to resource name for publish command. 2018-10-19 13:19:50 +10:00
Tyler Benson 97dd303909 Don’t change resource name of span unless it’s for Rabbit. 2018-10-19 12:27:34 +10:00
Tyler Benson 64595cf485 Add type hints and parent assertion 2018-10-19 11:51:57 +10:00
Tyler Benson 7ece2fe2a6 Prevent exchange name being overwritten in publish resource name. 2018-10-19 10:25:32 +10:00
Tyler Benson 80f160be72
Merge pull request #539 from DataDog/mar-kolya/increase-netty-timeout
Increase request timeout in netty client tests
2018-10-19 09:34:14 +10:00
Tyler Benson 6ad309cec0
Merge pull request #538 from DataDog/tyler/increase-retry
Add additional retries for ES tests.
2018-10-19 09:33:55 +10:00
Nikolay Martynov a5d8c3fc7d Increase request timeout in netty client tests
Otherwise requests timeout and tests fail
2018-10-18 16:19:24 -04:00
Nikolay Martynov 7b88abfd9d Use maven central to fetch jmxfetch lib 2018-10-18 16:06:08 -04:00
Andrew Kent 131074c255 Move InstrumentationContext api to bootstrap 2018-10-18 10:16:15 -07:00
Nikolay Martynov e02f889f09 Remove some dead code from SpockRunner
And also reformat it
2018-10-18 10:06:41 -04:00
Nikolay Martynov 3cc520ecb9 Add integration test for jmxfetch 2018-10-18 09:46:47 -04:00
Nikolay Martynov 60f799dd5a Configure jmxfetch host and port separately 2018-10-18 09:46:47 -04:00
Nikolay Martynov 97fe8cbf88 Add option to disable JMXFetch 2018-10-18 09:46:47 -04:00
Nikolay Martynov 403040bac0 Use JMXFetch as a library 2018-10-18 09:46:44 -04:00
Gary 21fa1430c8
add comment about choice of version 2018-10-18 09:28:43 -04:00
Gary 796ce20ca6
split muzzle ranges into blocks to avoid OOM in ci 2018-10-18 09:28:41 -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
Gary Huang 254f721baf
Muzzle AWS SDK Instrumentation
Add muzzle blocks and remove class loader matcher methods.
2018-10-18 09:28:37 -04:00
Tyler Benson 8ff5c7c36c Review fix comments and version range. 2018-10-18 16:08:37 +10:00
Tyler Benson be205010c1 Add additional retries for ES tests. 2018-10-18 11:00:52 +10:00
Andrew Kent b02ed4e813 Initial Map-backed implementation and test 2018-10-17 15:29:59 -07:00
Nikolay Martynov e74d054291 Add tests for Vertx HTTP client 2018-10-17 14:47:31 -04: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
Andrew Kent f098b8027e Basic implementation outline and happy-path test 2018-10-16 10:22:36 -07:00
Nikolay Martynov fc11f199b7 Improve netty4.1 server tests 2018-10-15 16:50:02 -04:00
Nikolay Martynov a4a1c70393 Enable all 8+ JVMs for netty-4.1 tests 2018-10-15 15:26:36 -04:00
Andrew Kent 7330ceaf4e Instrumentation Context outline for HttpURLConnection as an example 2018-10-15 11:05:23 -07:00
Tyler Benson 6b0e43b32d
Merge pull request #529 from DataDog/tyler/dropwizard
Integration for Dropwizard Views
2018-10-15 14:58:37 +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
Tyler Benson 14846a79df Add Dropwizard-views instrumentation 2018-10-11 14:39:04 +10:00
Tyler Benson ebf0d86734 Add Muzzle testing for dropwizard-client 2018-10-11 14:21:39 +10:00
Andrew Kent 13c96bba33 Additional test for shared field 2018-10-10 10:40:04 -07:00
Andrew Kent 7dea113777 Skip jacoco for TestUtils 2018-10-10 10:33:49 -07:00
Andrew Kent 36d396cb8e Fix AgentTestRunner bootstrapping 2018-10-10 10:33:49 -07:00
Gary Huang 3c0d6494ca
Merge pull request #483 from DataDog/gary/muzzle-servlet-2
Muzzle servlet-2 Instrumentation
2018-10-05 12:30:07 -04:00
Qiyang Huang a0170dbc69
Add fail block for servlet 2 2018-10-05 12:06:47 -04:00
Gary Huang c7eb667c0e
Muzzle servlet-3 Instrumentation
Add muzzle block and remove class loader matcher method.
2018-10-05 12:06:45 -04:00
Gary Huang eb5f33094b
Merge pull request #519 from DataDog/gary/enable-spymemcached
Enable Spymemcached instrumentation by default
2018-10-05 12:03:43 -04:00
Nikolay Martynov f71192266c Rework the way multi-jvm tests work
To allow some JVMs runs only subset of tests
2018-10-02 13:20:19 -04:00
Tyler Benson 330e09d0b3
Merge pull request #477 from DataDog/tyler/bb-upgrade
Upgrade Byte Buddy to 1.9.0
2018-10-02 11:31:11 -04:00
Nikolay Martynov 1299141ff6 Enable akka instrumentation by default 2018-10-02 10:20:25 -04:00
Tyler Benson 929bc3b690
Merge pull request #521 from DataDog/tyler/apache-http
Refactor Apache HttpClient Instrumentation.
2018-10-01 14:59:35 -04:00
Tyler Benson 6fdcfc783a Keep operation name the same 2018-10-01 14:28:14 -04:00
Nikolay Martynov 55c2935a19 Remove some hacks that were made for Gradle 4.10.1 2018-10-01 13:40:17 -04:00
Tyler Benson 6b8eb60ca2 Upgrade Byte Buddy to 1.9.0 2018-10-01 13:31:03 -04:00
Tyler Benson 8b822ff26d Fix AWS tests and change span type to http-client
There seems to be a bug.  I would expect the aws span to be the parent of the apache http span, but that is not the case.

Removed the now unused HTTPComponent decorator.
2018-09-28 21:23:30 -04:00
Gary 2312c13aa2
restore classLoaderMatcher to make instrumentation safer 2018-09-28 20:45:22 -04:00
Gary Huang 80b4a9790c
Fix versions range 2018-09-28 20:45:20 -04:00
Gary Huang c7e8755492
Muzzle servlet-2 Instrumentation
Add muzzle block and remove class loader matcher method.
2018-09-28 20:45:18 -04: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
Andrew Kent 5864dd90e7 Allow instrumenting com.sun.messaging. namespace 2018-09-28 14:37:32 -07:00
Gary 79d3327475
Enable Spymemcached instrumentation by default 2018-09-28 14:51:10 -04:00
Gary Huang cbaf61af04
Merge pull request #492 from DataDog/gary/muzzle-sparkjava
Muzzle and Expand Spark Java Instrumentation
2018-09-27 22:47:15 -04:00
Gary Huang 7ecc49a228
Merge pull request #509 from DataDog/gary/muzzle-spy-memcached
Muzzle Spymemcached
2018-09-27 22:44:56 -04:00
Andrew Kent 707685ed66
Merge pull request #516 from DataDog/mar-kolya/use-okhttputils
Use OkHttpUtils in more places
2018-09-26 19:32:49 -07:00
Gary 33ab8d0072
Expand instrumentation version range and rename package 2018-09-26 22:31:23 -04:00
Qiyang Huang fe6ee07aad
Add assert inverse 2018-09-26 22:31:21 -04:00
Gary Huang e937e4322b
Muzzle Spark Java Instrumentation
Add muzzle block.
2018-09-26 22:31:14 -04:00
Nikolay Martynov 419b859324 Remove classloaders instrumentation
This is dead code that is not used
2018-09-26 17:33:30 -04:00
Nikolay Martynov 5d627733d8 Use OkHttpUtils in more places 2018-09-26 15:07:20 -04:00
Gary 827b721ae4
add comment about build vs muzzle versions 2018-09-26 14:26:58 -04:00
Nikolay Martynov 84bef23698 Increase timeouts in Couchbase to make tests more stable 2018-09-26 13:47:37 -04:00
Nikolay Martynov d48eb4de77 Decouple Groovy version from Gradle
And use newer Groovy and Spock
2018-09-26 13:47:34 -04:00
Nikolay Martynov dfba97273c lock version of spring-data-es to avoid upgrading ES to 6.x.x in 5.3 instrumentation 2018-09-24 14:59:25 -04:00
Tyler Benson 76876e7d9e
Merge pull request #443 from DataDog/tyler/executor-instrumentation
Allow executor tracing to flow across distinct executors
2018-09-23 10:12:56 +10:00
Andrew Kent bf24e5d5d0
Merge pull request #511 from DataDog/tyler/es-extract-index
Cleanup created indexes to allow RetryOnFailure
2018-09-21 11:21:33 -07:00
Tyler Benson a14945f6e0 Cleanup created indexes to allow RetryOnFailure 2018-09-21 14:44:14 +10:00
Tyler Benson 2174f21d61 Allow executor tracing to flow across distinct executors
Otherwise any async work is lost after the first executor jump.
2018-09-21 11:12:19 +10:00
Tyler Benson 72b2873ec1 ScheduledThreadPoolExecutor doesn’t actually work separately
It was only working because it extends from ThreadPoolExecutor, but it uses a backing queue type that is incompatible.  Scheduled execution submits to the work queue directly and will bypass the exisiting instrumentation.
2018-09-20 16:33:49 +10:00
Tyler Benson 3d78afbc2c Disable Executor instrumentation ThreadPoolExecutor instances
If we can’t add generic runnables to the queue.

This won’t solve the problem for all cases, but it will help with some.

Tests forthcoming.
2018-09-20 16:06:01 +10:00
Tyler Benson c84c83f168
Merge pull request #501 from DataDog/tyler/gradle-upgrade
Upgrade gradle to 4.10.1
2018-09-20 10:51:50 +10:00
Tyler Benson 21f4806d08
Merge pull request #506 from DataDog/tyler/es-tlc
Remove elasticsearch.request.description
2018-09-20 10:45:36 +10: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
Gary Huang 622db5942b
Merge pull request #486 from DataDog/gary/muzzle-jetty
Muzzle Jetty Instrumentation
2018-09-19 16:07:19 -04:00
Gary Huang 4db131b415
Merge pull request #488 from DataDog/gary/muzzle-jms
Remove version scan from JMS Instrumentation
2018-09-19 16:06:41 -04:00
Gary Huang ba8efa5bc6
Merge pull request #498 from DataDog/gary/muzzle-mongo
Muzzle Mongo Instrumentations
2018-09-19 15:31:34 -04:00
Qiyang Huang 347002c0f6 Muzzle Spymemcached
Add muzzle block and remove class loader matcher method.
2018-09-19 14:37:25 -04:00
Tyler Benson ebcc2ef052 Add work around for scala compile issue. 2018-09-19 15:13:42 +10:00
Tyler Benson 9dad0fb4d6 Separate out latestDepTests 2018-09-19 15:10:26 +10:00
Tyler Benson 72f2036dc7 Remove retry from some tests
Index creation fails the next time around.
2018-09-19 14:57:37 +10:00
Tyler Benson ea97996df7 Remove elasticsearch.request.description
It seems to potentially have sensitive contents, so removing to be safe.
2018-09-19 14:55:23 +10:00
Tyler Benson 2b93aa7cbf Fix ES version ranges. 2018-09-19 14:51:38 +10:00
Tyler Benson f9f0438e85 Initialize WeakMapProvider even earlier
It is used by classes delcared as static fields in AgentInstaller, so there were some cases where the fallback is being used.
2018-09-19 08:37:08 +10:00
Tyler Benson 70e4525131
Merge pull request #502 from DataDog/tyler/jdbc-errors
Better error handling for older JDBC drivers
2018-09-19 08:33:48 +10:00
Tyler Benson 296f9adfc2 Ignore byte buddy classes
not having this produced the following error on startup:

```
Cannot resolve type description for net.bytebuddy.dynamic.Nexus
```
2018-09-18 17:20:36 +10:00
Tyler Benson e11ab12284 Better error handling for older JDBC drivers
that don’t support unwrapping (pre JDK 1.6).
2018-09-18 16:46:08 +10:00
Tyler Benson 955b97da9e Add slashes if missing from annotation values 2018-09-18 09:48:32 +10:00
Qiyang Huang 91f0b1d662 Change compile & test versions to match muzzle blocks 2018-09-16 08:34:22 -04:00
Qiyang Huang e3712910b1 Muzzle Mongo Instrumentations
Add muzzle blocks.
2018-09-16 08:30:05 -04:00
Tyler Benson c1ab82663d
Merge pull request #479 from DataDog/tyler/broken-jax-rs-client
Handle connection failures for Jersey and Resteasy
2018-09-13 15:19:01 +10:00
Tyler Benson d111680dba Begin 0.16.0 2018-09-13 14:48:40 +10: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
Tyler Benson bcec2e5f97 Add span.type and remove bucket name from resource.name 2018-09-12 10:04:13 +10:00
Andrew Kent faad7824ed Elasticsearch 5.3.0 instrumentation 2018-09-11 16:00:38 -07:00
Gary Huang a9a8a2af68
Merge pull request #490 from DataDog/gary/muzzle-kafka
Muzzle Kafka Client & Streams Instrumentation
2018-09-10 20:01:55 -04:00
Gary Huang 522035c317
Merge pull request #489 from DataDog/gary/muzzle-grpc
Muzzle gRPC Instrumentation
2018-09-10 20:01:04 -04:00
Gary Huang 202deaa0a6
Merge pull request #481 from DataDog/gary/muzzle-spring-web
Muzzle Spring Web Instrumentation
2018-09-10 20:00:46 -04:00
Gary Huang d7b87c07d8
Merge pull request #491 from DataDog/gary/muzzle-hystrix
Muzzle Hystrix Instrumentation
2018-09-10 20:00:20 -04: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
Gary Huang 9c1b641069
Merge pull request #484 from DataDog/gary/muzzle-okhttp-3
Muzzle OKHttp 3 Instrumentation
2018-09-10 12:10:37 -04:00
Gary Huang 05356cc1f5
Muzzle Hystrix Instrumentation
Add muzzle block and remove class loader matcher method.
2018-09-08 12:57:25 -04:00
Gary Huang ea0600c0c3
Muzzle Kafka Client & Streams Instrumentation
Add muzzle blocks and remove class loader matcher methods.
2018-09-07 20:11:01 -04:00
Gary Huang 48ad43e423
Muzzle gRPC Instrumentation
Add muzzle block and remove class loader matcher methods.
2018-09-07 20:02:40 -04:00
Gary Huang 6bc6bcdec9
Remove version scan from JMS Instrumentation 2018-09-07 19:56:17 -04:00