Commit Graph

1495 Commits

Author SHA1 Message Date
Tyler Benson f63d40fe55 Use git submodules to load metrics.yaml files 2019-01-08 10:13:18 -08:00
Tyler Benson 249951aa7a Add README 2019-01-08 09:36:08 -08:00
Tyler Benson de166e5ecb First pass at embedding existing jmx integrations
Using copy/paste from integrations-core.  Will depend on a new jmxfetch release with https://github.com/DataDog/jmxfetch/pull/205 before this will work.
2019-01-08 09:36:07 -08:00
Nikolay Martynov 354cbfcb2d Concurent instrumentation tests: block thread before starting tracing
Otherwise blocking thread is pretty much useless since we may still
get spans if threads are executed quickly enough.
2019-01-08 12:30:18 -05:00
Nikolay Martynov 06bd670f0a Remove unused class 2019-01-08 12:30:10 -05:00
Nikolay Martynov 93b018b4cc Use port 61 for unused port in akka tests
This port is in low range and is not assigned so nothing should really
be listening on it on any host.
2019-01-08 12:04:50 -05:00
Tyler Benson 7da0cc7f50
Merge pull request #645 from DataDog/tyler/instrumenter-signature
Apply proper generic signature for Instrumenter.Default transformers()
2019-01-07 14:18:52 -08:00
Tyler Benson c18b299606 Also exclude test coverage from instrumentation 2019-01-04 15:25:36 -08:00
Tyler Benson 6d7415fed2 Don’t run coverage on projects that use shadow
It was breaking on dd-java-agent where it has duplicate classes across different jars.  These projects are excluding everything anyway.
2019-01-04 15:25:36 -08: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
Tyler Benson fe52180bfc Apply proper generic signature for Instrumenter.Default transformers()
Previously it was missing the MethodDescription portion.
2019-01-04 15:25:12 -08:00
Tyler Benson 93116e4e12 Avoid downloading so many AWS dependencies for the entire SDK
Only specify the deps we need for the tests.
2019-01-04 13:42:51 -08:00
Nikolay Martynov d02e0d8e47 Fix akka latest dep test failure 2019-01-03 19:13:48 -05:00
Nikolay Martynov ad2d5d6cb7
Merge pull request #638 from DataDog/mar-kolya/fix-akka-101
Fix Akka 10.1 support
2018-12-28 13:30:42 -05:00
Nikolay Martynov be919a0145 Fix Akka 10.1 support 2018-12-28 13:12:33 -05:00
Tyler Benson 82dcc3ce6c
Merge pull request #629 from DataDog/ark/jmx-tagging
Add languages tag to jmx/runtime tags
2018-12-28 09:34:20 -08:00
Tyler Benson 8b910b46d1 Update tests for `language` tag in root span 2018-12-27 16:00:47 -08:00
Tyler Benson 3ef347f00f Use safeHasSuperType instead of isSubTypeOf 2018-12-27 10:33:43 -08:00
Tyler Benson 471d8c4410 Properly capture callable statement queries
CallableStatement is a sub type of PreparedStatement.  Previously we were only matching methods that returned exactly PreparedStatement.
2018-12-21 14:03:33 -08:00
Andrew Kent e9f1436522 Additional continuable-scope tests 2018-12-19 17:12:58 -08:00
Andrew Kent 2861d87071 slf4j MDC autoinjection integration 2018-12-19 17:09:00 -08:00
Andrew Kent 4dc3528097 Add post-match hook to default instrumenter api 2018-12-19 17:07:43 -08:00
Andrew Kent 571d9cf077
Merge pull request #632 from DataDog/ark/remove-errorprone
remove errorprone
2018-12-19 20:58:26 +00:00
Andrew Kent d0f3cfa3d6 Use asm bundled by bytebuddy in field-backed provider
JVM's ASM is not bundled with the agent and may not be present at runtime.
2018-12-19 12:37:47 -08:00
Gary Huang 513cccd698
Change shell script to work with play
- Added an argument to the script to take [play-zip|jar] to distinguish between the frameworks to test
- Updated README
- Cleanup
2018-12-14 11:19:17 -05:00
Gary Huang d3b7910950
Add work logic to play server 2018-12-14 11:19:15 -05:00
Gary Huang 34658aabcb
Play Server Performance Testing
Set up gradle sub project
2018-12-14 11:18:58 -05:00
Andrew Kent 0b92413d4a Move JvmBootstrapTest into a fork inside a groovy test 2018-12-12 20:17:48 -08:00
Andrew Kent d0120b9419 Assert logger constructor exists before applying instrumentation
This adds muzzle functionality to the logger
instrumentation. Assertions are manually set up because auto-creation
of references is not possible for non-default instrumenters.
2018-12-12 20:01:52 -08:00
Andrew Kent 0240ad5154 Move default instrumentation declarations to Instrumenter.Default 2018-12-11 18:01:40 -08:00
Andrew Kent 1004ee4ef7 Patch java.util.logging.Logger for safe use with jmxfetch 2018-12-11 17:26:02 -08:00
Andrew Kent d60ecf0a62 Upgrade jmxfetch to latest version
Manually tested against wildfly. No startup bugs. New jvm metrics are
autoreported.
2018-12-10 10:58:35 -08:00
Gary Huang 70b60939f4
Merge pull request #622 from DataDog/gary/fix-ratpack-test
Fix Flaky Ratpack Fork Test
2018-12-09 15:27:44 -05:00
Gary Huang a04b30107f
Change scope handling 2018-12-07 12:40:18 -05:00
Nikolay Martynov cb419997af
Merge pull request #623 from DataDog/mar-kolya/jms-test-improvements
Small improvement for jms tests to hopefully make them more stable
2018-12-07 11:58:29 -05:00
Nikolay Martynov 2d28b5129e
Merge pull request #621 from DataDog/mar-kolya/fix-wildfly-startup
Fix wildfly startup by injecting context classes into bootstrap package
2018-12-07 10:44:42 -05:00
Nikolay Martynov 3225c8fd03 Fix wildfly startup by injecting context classes into bootstrap package 2018-12-07 09:56:04 -05:00
Nikolay Martynov c1e21e328b Small improvement for jms tests to hopefully make them more stable 2018-12-07 09:40:29 -05:00
Gary Huang 26c354dad2
Fix Flaky Ratpack Fork Test
Ratpack tests occasionally fail with the handler span and manually started span out of order. This will ensure that if a span is manually started inside of the handler then it will be finished after the handler span is finished, which is when the request has been responded to.
2018-12-07 00:49:37 -05:00
Gary Huang 2c85b5cbb8
Restore RabbitMQ latestDepTest to use latest version
Since spring-rabbit no longer uses a dependency with a snapshot build.
2018-12-07 00:16:03 -05:00
Nikolay Martynov 600674b03a Put back muzzle check for 'dd-' threads 2018-12-05 17:20:50 -05:00
Nikolay Martynov 4deb68bfd7 Fix memory leak in WeakMapSuppliers.WeakConcurrent
The problem there is that it references JVM shutdown hook that keeps
reference to cleanup executor which potentially can keep references to
all sort of things - and this doesn't get cleaned up untill JVM
shutdown.

Solution is to remove shutdown hook when supplier is being GCed.
2018-12-05 15:02:40 -05:00
Nikolay Martynov 30712cdc87
Merge pull request #617 from DataDog/mar-kolya/java-concurrent-test-cleanup
Remove unused variable from AsyncChild classes
2018-12-05 12:35:19 -05:00
Nikolay Martynov 2e9b20ceb5 Remove unused variable from AsyncChild classes 2018-12-05 11:53:19 -05:00
Tyler Benson 94a3f7bb2b
Merge pull request #616 from DataDog/tyler/grpc
Enable gRPC instrumentation by default.
2018-12-04 14:28:58 -08:00
Nikolay Martynov 7cd3438d6b
Merge pull request #613 from DataDog/mar-kolya/improve-httpurl-connection
Improve HttpUrlConnection instrumentation
2018-12-04 17:12:01 -05:00
Tyler Benson 43e8c70098 Enable gRPC instrumentation by default. 2018-12-04 14:11:57 -08:00
Nikolay Martynov 0a3ecc1b90 Improve HttpUrlConnection instrumentation
Make sure we get one span per request
2018-12-04 16:54:48 -05:00
Tyler Benson 6cb9e0360d
Merge pull request #612 from DataDog/tyler/jms
Remove duplicate JMS spans from nested calls.
2018-12-04 11:25:56 -08:00
Tyler Benson 013e57c677 Add tests for Spring JMS Template 2018-12-04 10:54:53 -08:00
Nikolay Martynov 66570a2135 Add some synchronization into ES tests to make them more stable 2018-12-04 12:15:44 -05:00
Tyler Benson 3be4bbb7f0
Merge pull request #608 from DataDog/tyler/upgrades
Update misc versions.
2018-12-03 15:07:36 -08:00
Tyler Benson 74743be6e5 Remove duplicate JMS spans from nested calls. 2018-12-03 11:15:28 -08:00
Andrew Kent 12a1b0ce08
Merge pull request #610 from DataDog/ark/jmxfetch-new-gc-metrics
Configure jmxfetch to use new gc metrics
2018-11-30 18:54:31 +00:00
Andrew Kent 20b726bca7
Merge pull request #609 from DataDog/ark/aws-muzzle-ranges
Simplify AWS muzzle ranges
2018-11-30 18:53:05 +00:00
Andrew Kent c9471e289b Configure jmxfetch to use new gc metrics
This won't have any effect on jmx behavior. The next jmxfetch update
puts our desired metric names behind this feature flag. Enabling now
so we don't forget the next time we refresh jmxfetch.
2018-11-30 10:13:11 -08:00
Tyler Benson 983077d150 Move mock/assert deps out of common dependencies 2018-11-30 10:02:26 -08:00
Andrew Kent 91f1bef6f4 Simplify AWS muzzle ranges
AWS Muzzle workaround is no longer needed with latest muzzle
optimizations.
2018-11-29 16:18:14 -08:00
Nikolay Martynov 2e8dc9d08f Fix Ratpack tests that got broken by ExecutorInstrumentation refactoring
It turns out closing continuation also closes parent span. This is not
very good in cases when we end up not using continuation if
continuation in a state has already been setup.

This patch provides way to close continuation in a way that doesn't
affect parent scope.
2018-11-29 15:21:46 -08:00
Nikolay Martynov 4ec5ca394c Add code to wrap future returned by submit(Runnable) call 2018-11-29 15:18:46 -08:00
Nikolay Martynov 177c1432e3 Add tests to verify that fields are not injected when feature is disabled 2018-11-29 15:18:46 -08:00
Nikolay Martynov ad98ebc01f Add some comments and some other minor CR tweaks 2018-11-29 15:18:46 -08:00
Nikolay Martynov 1509286b15 Remove MapBackedProvider 2018-11-29 15:18:46 -08:00
Nikolay Martynov 118a61cc67 Add field backed context provider 2018-11-29 15:18:46 -08:00
Nikolay Martynov b89e73b3c0 Switch executor instrumentation to use context storage 2018-11-29 15:18:46 -08:00
Tyler Benson 442323d4d1 Add catch so instrumentation errors don’t interrupt primary execution. 2018-11-29 13:14:12 -08:00
Tyler Benson c9ec9ebd0f Add guard against null values in extract adapter. 2018-11-29 13:06:01 -08:00
Tyler Benson ae063e8a14 Add additional 404 tests for spring boot.
This one succeeds in applying routing, but returns a 404 response.
2018-11-29 11:32:49 -08:00
Tyler Benson 785860b6a7 Add null check for envelope in consumer delegate 2018-11-29 11:22:32 -08:00
Andrew Kent 3c4b480a18 Share tooling loader across muzzle runs 2018-11-28 13:01:01 -08:00
Andrew Kent 6ee5fd27b0 Guard against invoking WeakConcurrent constructor 2018-11-28 12:05:47 -08:00
Tyler Benson 2f319b9301 Consumer delegate should rethrow the exception
Previously the delegate would swallow the exception and not rethrow.

I also added a test to attempt to verify, but the exception doesn’t seem to be observable in the test.

(See #602)
2018-11-28 08:36:15 -08:00
Nikolay Martynov e87d4ef161 Servlet3 instrumentation race consition fixes
* Do not set `asyncPropagate` on scope since it will be closed anyway.
* Close span once done with it in `TagSettingAsyncListener`.
* No point in explicit finishing span in 'finishOnClose' scope.
* Do not reattach listener in
  `TagSettingAsyncListener#onStartAsync`. Listener is attached each
  time by `Servlet3Advice#stopSpan` and reattaching listener in
  `TagSettingAsyncListener#onStartAsync` causes multiple listeners to
  be attached and race conditions to happen.
* Do not close span in `AsyncContextInstrumentation`. This leads to
  span being written prematurely. This span will be closed in
  `TagSettingAsyncListener` anyway, along with adding proper status code.
2018-11-27 17:17:56 -08:00
Tyler Benson e46ab1d01d
Merge pull request #600 from DataDog/tyler/threadpool-errors
Improve error handling for ThreadPoolExecutorInstrumentation
2018-11-27 15:24:58 -08:00
Tyler Benson 4199f924ac Remove ES-transport instrumentation from rest test
It is generating an extra trace/span that in a realistic scenario would be generated by the server, not the client.
2018-11-27 13:02:44 -08:00
Tyler Benson 468ccab99a Improve error handling for ThreadPoolExecutorInstrumentation
If other exceptions are thrown when trying to test the queue, it generates lots of log noise.  This should handle it better.
2018-11-27 11:28:44 -08:00
Nikolay Martynov 6f61ddc67d
Merge pull request #594 from DataDog/mar-kolya/es-tests-stability
Improve stability of ES tests by avoiding unpredictable spans
2018-11-26 22:50:43 -08:00
Gary 90777f4b39
Retire/remove version scan
Remove version scan dead code and unnecessary classLoaderMatcher methods in instrumentations. Depends on #572
2018-11-26 18:21:56 -05:00
Gary 477c2f92c8
Address comments and add onClose callback on context to close scope. 2018-11-26 17:26:48 -05:00
Gary 50c2af9abb
remove classloader matcher 2018-11-26 16:57:12 -05:00
Gary 51978d877f
remove version scan task from ci 2018-11-26 16:57:10 -05:00
Gary bf30d73746
remove skipping of ratpack helper checks 2018-11-26 16:55:36 -05:00
Gary 4169e42cdc
replace version scan with muzzle block 2018-11-26 16:55:33 -05:00
Gary 6475f20308
Refactor Ratpack
Remove the use of the OT project and Execution managed scopes. Updated tests.
2018-11-26 16:55:18 -05:00
Nikolay Martynov 467f14c359 Small fix in ES tests 2018-11-26 13:07:42 -08:00
Andrew Kent 1b1527da93
Merge pull request #596 from DataDog/mar-kolya/set-gradle-heap
Mar kolya/set gradle heap
2018-11-26 19:39:40 +00:00
Nikolay Martynov 80cd7cd500 Do testAnnotationProcessor deps.autoservice in modules with services in tests
Otherwise sometimes tests cannod discover services
2018-11-23 09:44:49 -05:00
Nikolay Martynov 23203fb659 Improve stability of ES tests by avoiding unpredictable spans 2018-11-23 09:43:41 -05:00
Nikolay Martynov 7dae6df890 In kafka latest deps test make sure that kafka version matches kafka client libs
This seems to help with compatibility
2018-11-22 21:02:05 -05:00
Nikolay Martynov fdffee8f5c Fix Hysrix test to not poll queue and return null
Instead wait for value to appear
2018-11-21 16:25:34 -05:00
Nikolay Martynov 2852a6a97a Fix setup so springweb tests produce appropriate logs 2018-11-21 16:03:19 -05:00
Nikolay Martynov 590ed30f56 Limit Jedis latest dep tests to 2+ versions of Jedis
Jedis 3 seems to have incompatible API changes
2018-11-21 11:43:13 -05:00
Nikolay Martynov a70da1d995 Remove redundant tests from SparkJava
Tests that create traces and do not assert on them may leave traces
behind for the next test causing errors.
2018-11-20 17:26:29 -05:00
Nikolay Martynov ca0a4a4458 Do not check ES document version in Sping test
ES may do things that change this version unexpectedly
2018-11-20 14:46:30 -05:00
Nikolay Martynov cd9ab3daef
Merge pull request #587 from DataDog/mar-kolya/set-netty-continuation-once
Set netty continuation only once
2018-11-20 13:19:45 -05:00
Nikolay Martynov 165f05beba Set netty continuation only once
Also remove continuation when getting it
2018-11-20 12:19:53 -05:00
Nikolay Martynov 228e7e0d21 Better handle Jetty async calls
Do same thing we do for servlets
2018-11-19 14:17:01 -05:00
Tyler Benson e4a12409c8 Add recursive servlet dispatch tests. 2018-11-16 14:40:35 -08:00
Tyler Benson e96752bbad Remove need for tomcat user file config 2018-11-16 09:56:42 -08:00
Tyler Benson 817895b559 Extract shared tests into abstract parent 2018-11-16 09:22:47 -08:00
Tyler Benson cde02e1ae5 Fix servlet async dispatch
Finish existing trace and propagate to the next request.

Improve dispatch testing.
2018-11-16 08:55:11 -08:00
Tyler Benson 3835157c4f
Merge pull request #577 from DataDog/tyler/spring-auth
Set user.principal in a way spring security can be covered
2018-11-16 08:52:42 -08:00
Tyler Benson 1064e35788 Apply standard tag name and update spring-web test deps version. 2018-11-16 08:06:40 -08:00
Tyler Benson 31b2e0f9b0
Merge pull request #578 from DataDog/tyler/components
Apply component tag more consistently
2018-11-15 13:02:39 -08:00
Nikolay Martynov 465e237522 Do not set component in AWS instrumentation that later get rewritten anyway 2018-11-15 13:21:49 -05:00
Tyler Benson 6126d6632e Add vertx latestDepTest 2018-11-15 09:58:21 -08:00
Nikolay Martynov 6f05cff023 Add test for UrlConnection error on file protocol 2018-11-15 12:31:42 -05:00
Tyler Benson cbb29069fe Apply component tag more consistently 2018-11-14 11:31:40 -08:00
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
Gary Huang a8f52d8c52
Muzzle Jetty Instrumentation
Add muzzle block and remove class loader matcher method.
2018-09-07 17:24:11 -04:00
Gary Huang b53514c458
Muzzle Jedis Instrumentation
Add muzzle block and remove class loader matcher method.
2018-09-07 16:47:00 -04:00
Gary Huang 78bf5d3aff
Muzzle OKHttp 3 Instrumentation
Add muzzle block and remove class loader matcher method.
2018-09-07 16:28:58 -04:00
Gary Huang 5bac242a89
Muzzle Spring Web Instrumentation
Add muzzle block and remove class loader matcher methods.
2018-09-07 15:31:44 -04:00
Tyler Benson b3222009ef Stop sending params with AWS traces
can potentially contain sensitive data.

(See #461)
2018-09-07 08:55:24 +10:00
Tyler Benson b4c8b7e538 Add @RetryOnFailure to ES tests. 2018-09-05 14:46:22 +10:00
Tyler Benson f5590e97bd Cleanup tests 2018-09-05 14:46:22 +10:00
Tyler Benson 444cbecba5 Use CouchbaseMock instead of actual server
Seems way more reliable/consistent for test scenarios.
2018-09-05 14:46:22 +10:00
Tyler Benson 0655ef208f Further attempt at making tests reliable. 2018-09-05 14:46:22 +10:00
Nikolay Martynov 422ded1d5b Configure Spring Couchbase client with proper couchbase environment
It looks like Couchbase container may have some of the ports mapped
randomly. This means it is possible default environment settings might
not work - and this is what Spring is using by default. This change
makes Spring use environment provided by cluster container. This fixes
tests when they are run locally (at least for macos).
2018-09-05 14:46:22 +10:00
Tyler Benson 2c4366cae7 Retry on failure 2018-09-05 14:46:22 +10:00
Tyler Benson 9ea1883015 Separate out bucket and cluster instrumentation
Include bucket name in bucket spans
2018-09-05 14:46:22 +10:00
Tyler Benson 63091c9350 Review fixes 2018-09-05 14:46:22 +10:00
Tyler Benson 2761615436 Couchbase instrumentation 2018-09-05 14:46:22 +10:00
Andrew Kent 222f25e124
Merge pull request #471 from DataDog/ark/elastic-enable
Enable and muzzle elasticsearch instrumentation
2018-09-04 20:50:32 -07:00
Gary Huang 2442cfd2e5
Merge pull request #476 from DataDog/gary/lettuce-muzzle
Muzzle Lettuce 5 Instrumentation
2018-09-04 21:54:03 -04: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
Andrew Kent 7aa86b8154
Merge pull request #475 from DataDog/ark/jax-muzzle
muzzle jax-rs instrumentation
2018-09-04 09:57:23 -07:00
Tyler Benson 96e02301f8
Merge pull request #473 from DataDog/tyler/combine-jms
Make JMS more resilent to property failure
2018-09-04 09:24:09 +10:00
Gary Huang dff9e2ef43
Muzzle Lettuce 5 Instrumentation
Add muzzle block and remove class loader matcher methods.
2018-09-01 14:34:42 -04:00
Andrew Kent b781c3163c muzzle jax-rs instrumentation 2018-08-31 13:51:15 -07:00
Gary Huang d152126558 refactor HandlerFunctionAdapterAdvice 2018-08-31 14:31:03 -04:00
Gary Huang df2699afc8 Address comments & add better resource naming for webflux spans.
Spans will now be named with the controller class name and method for request mapping (annotation based API), and lambda functions will be named with target class.lambda.
2018-08-31 14:31:03 -04:00
Gary Huang c87fec36ac Spring webflux instrumentation
instruments spring webflux 5+
2018-08-31 14:31:03 -04:00
Andrew Kent 9c42087ec3
Merge pull request #472 from DataDog/ark/jsp-enable
Enable and muzzle jsp instrumentation
2018-08-31 10:43:48 -07:00
Nikolay Martynov 52af1a2893
Merge pull request #474 from DataDog/mar-kolya/fix-netty-version
Fix netty version in instrumentation name
2018-08-31 12:35:39 -04:00
Nikolay Martynov 2b1f6382d4 Fix netty version in instrumentation name 2018-08-31 10:58:17 -04:00
Tyler Benson 8061bd2471 Add comment. 2018-08-31 16:27:31 +10: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 2d04ef292e
Merge pull request #468 from DataDog/tyler/evict-typepool
Add eviction to a TypePool.CacheProvider’s cache
2018-08-31 08:57:18 +10:00
Andrew Kent b637f9ef91 Enable and muzzle jsp instrumentation 2018-08-30 15:56:59 -07:00
Andrew Kent 6755bcbbdf Enable and muzzle elasticsearch instrumentation 2018-08-30 15:12:18 -07:00
Nikolay Martynov 8034fc2afd
Merge pull request #470 from DataDog/mar-kolya/improve-es-tests
Improve ES tests
2018-08-30 17:03:33 -04:00
Andrew Kent 18ed9ee151 netty-4.1 muzzle 2018-08-30 11:29:04 -07:00
Nikolay Martynov 1d6349bafd Improve ES tests
* Account for the fact that IndexAction and PutMappingAction are not
  ordered deterministically
* Account for a fact that waiting for ES startup may produce multiple spans
2018-08-30 11:54:21 -04:00
Tyler Benson 6b0f20fc05 Add eviction to a TypePool.CacheProvider’s cache
Most items loaded are probably not often used.  Puts an upper limit on the size and evicts unused Resolution’s over time.
2018-08-30 11:56:53 +10:00
Andrew Kent 61aaebfc97 Create muzzle references from ldc instructions 2018-08-29 17:18:11 -07:00
Andrew Kent c06983ef34 muzzle netty-4.0 instrumentation 2018-08-29 13:28:25 -07:00
Andrew Kent f08a2025dd Fix dd-trace-api tracer registration in test runner 2018-08-28 19:05:18 -07:00
Andrew Kent 7154b54e10 Rename TracerBridge and Provider 2018-08-27 12:04:26 -07:00
Andrew Kent 9f1d22ea6b Register TracerBridge in TracerInstaller instead of DDTracer init 2018-08-27 12:04:26 -07:00
Andrew Kent 9338faa013 Muzzle inverse assertions 2018-08-24 10:47:37 -07:00
Andrew Kent 26705142bb Muzzle pass and fail directives in the same collection 2018-08-24 10:47:37 -07:00
Andrew Kent b6d1c18af9 Allow muzzle directives to have extra dependencies 2018-08-24 10:47:37 -07:00
Andrew Kent f06eb57449 Convert apache-http, akka, and play to muzzle plugin 2018-08-24 10:47:37 -07:00
Andrew Kent c6841c9d06 Add maven version scanning to muzzle 2018-08-24 10:47:37 -07:00
Tyler Benson 63bee3737c Enable executor instrumentation for gRPC server calls
This might be more than is needed.  Maybe cut back later.
2018-08-24 20:25:13 +10:00
Tyler Benson 51d74f6147 Begin 0.14.0 2018-08-24 11:35:47 +10:00
Tyler Benson 6b71340b5b Enable new netty instrumentation by default
Enabled the others in a separate PR and forgot to come back and enable this.
2018-08-24 09:32:51 +10:00
Tyler Benson 5a6215971a
Merge pull request #455 from DataDog/tyler/enable-integrations
Enable netty by default
2018-08-23 16:04:23 +10:00
Tyler Benson 36b49c7de3
Merge pull request #451 from DataDog/tyler/netty-client-fixes
Allow trace to persist across netty connect.
2018-08-23 16:03:58 +10:00
Tyler Benson 69c04ea4c3 Enable netty instrumentation by default 2018-08-23 08:43:31 +10:00
Tyler Benson 898647e000 Allow trace to persist across netty connect.
Also create span with error on connection failure.

Add tests for connection failure.
2018-08-22 09:45:33 +10:00
Nikolay Martynov c95baef487 Wait for given reference to get GCed in `waitGC`
This should help to make sure that object we are interested in
actually gets GCed.

This change also improves tests for PendingTrace and ScopeManager to
make sure that trace gets cleaned up.
2018-08-21 10:05:10 -04:00
Nikolay Martynov 520676538c
Merge pull request #449 from DataDog/mar-kolya/add-distributed-tracing-tests
Add some tests for distributed tracing in Tomcat and Jetty
2018-08-20 20:30:27 -04:00
Andrew Kent e28ee5f9e8 Add timeout to datadog classloader test 2018-08-20 11:10:08 -07:00
Nikolay Martynov a0036a76cc Add `runFinalization` to `waitForGC` 2018-08-19 00:49:27 -04:00
Nikolay Martynov a4cded9b4f Add some tests for distributed tracing in Tomcat and Jetty 2018-08-18 13:38:06 -04:00
Andrew Kent 2d8102c8f5 Register Datadog classloader as parallel capable 2018-08-17 15:42:49 -07:00
Tyler Benson f7407708a3
Merge pull request #444 from DataDog/tyler/test-http-server
Replace Ratpack test server with Jetty wrapped with groovy
2018-08-17 11:38:21 +10:00
Tyler Benson f60d71f379 Fix ServerTest from messing up AgentTestRunnerTest if ran first. 2018-08-17 11:14:04 +10:00
Tyler Benson 0b289205f8 Add fixme to adapter. 2018-08-17 10:53:12 +10:00
Tyler Benson 3fc2738179 Improve test coverage and reduce duplication 2018-08-17 10:36:45 +10:00
Nikolay Martynov 138f78ce4b Make Muzzle log class being instrumented 2018-08-16 17:28:32 -04:00
Tyler Benson 0b6c1bc3d3 Fix tests for Java 7, 9, and 10 2018-08-16 14:23:58 +10:00
Tyler Benson 20993e7e16 Allow tests to run on all JDKs 2018-08-16 14:23:58 +10:00
Tyler Benson e07dfffe5f Migrate tests to new TestHttpServer 2018-08-16 14:23:58 +10:00
Tyler Benson 63746907e4 Add TestHttpServer 2018-08-16 14:23:58 +10:00
Tyler Benson 3f2ec7dc48 Move to separate packages 2018-08-16 12:24:27 +10:00
Andrew Kent 3c1bf569ea Add reference pretty-printer to muzzle plugin 2018-08-15 10:01:19 -07:00
Andrew Kent c351a4825e Regenerate muzzle bytecode when run multiple times 2018-08-15 09:49:50 -07:00
Nikolay Martynov 36ec5d51e5 SafeHasSuperTypeMatcher: handle exceptions when getting class erasure 2018-08-15 09:49:50 -07:00
Andrew Kent a7c63b9261 Clarify comment for safe interface iteration. 2018-08-15 09:49:50 -07:00
Andrew Kent 57e85d4a13 Catch and log instrumentation matcher exception
Catching instrumentation matcher exceptions at the Instrumenter level
allows other, unrelated instrumentation to match.
2018-08-15 09:49:50 -07:00
Andrew Kent d64b162539 Remove safeMatch from element matcher and document bb cache class 2018-08-15 09:49:50 -07:00
Andrew Kent 260e3520aa Fix classloading integration tests 2018-08-15 09:49:50 -07:00
Andrew Kent 35c6fa2343 More error catching in safe matcher and reduce log level 2018-08-15 09:49:50 -07:00
Andrew Kent 75a6cee068 Add DDCachingPoolStrategy to reuse type descriptions 2018-08-15 09:49:50 -07:00
Ark f01c8349cc Deep-merge Reference fields and methods
Plus misc cleanup.
2018-08-15 09:49:50 -07:00
Andrew Kent e7bb7cfb3e Remove findLoadedClass 2018-08-15 09:49:50 -07:00
Andrew Kent 50c5a57c49 Replace UnloadedType with ByteBuddy TypeDescription 2018-08-15 09:49:50 -07:00
Andrew Kent 937e9a6cef Add more methods to PatchLogger 2018-08-15 09:49:37 -07:00
Andrew Kent 27cade057c Delegate bootstrap resource loading for unloaded types 2018-08-15 09:49:37 -07:00
Andrew Kent f8f45d7f14 Muzzle field matching 2018-08-15 09:49:37 -07:00
Andrew Kent c4daf007e3 Muzzle method and access matching 2018-08-15 09:49:37 -07:00
Andrew Kent 4887822eba Muzzle method ref creation and matching 2018-08-15 09:46:30 -07:00
Andrew Kent 0f6761dd4b Optimize Instrumenter logging 2018-08-15 09:46:30 -07:00
Andrew Kent 55a0abce68 Add notes of potential references to ReferenceCreator 2018-08-15 09:46:30 -07:00
Tyler Benson 2893eb6035
Merge pull request #435 from DataDog/tyler/jax-rs-improvements
Add span for jax-rs representing controller execution
2018-08-15 14:03:31 +10:00
Gary Huang 67c0f2fa03
Merge pull request #431 from DataDog/gary/okhttp-log
Remove Util Logger and Refactor test
2018-08-14 18:11:59 -04:00
Tyler Benson 84d38a8270
Merge pull request #439 from DataDog/tyler/method-signatures
Cleanup method signatures and servlet 2 instrumentation
2018-08-13 17:29:02 +10:00
Tyler Benson f801cbd466
Merge pull request #428 from DataDog/tyler/use-WeakConcurrentMap
Use WeakConcurrentMap
2018-08-13 16:44:16 +10:00
Tyler Benson dd11429575 Remove unused fields 2018-08-13 16:43:32 +10:00
Tyler Benson 232708e457 Prevent abstract classes from going through the muzzle plugin. 2018-08-13 15:35:46 +10:00
Tyler Benson 4583d12b31 Cleanup method signatures and servlet 2 instrumentation
adding the abstract servlet instrumentation reduces code duplication and makes it more similar to servlet 3 instrumentation.
2018-08-13 15:14:10 +10:00
Nikolay Martynov 44f501fa53 Fix resources directory name in lagom tests 2018-08-11 06:42:53 -07:00
Nikolay Martynov fc8cc47f85 WeakMap improvements
* Improve tests to not depend on thread schedulting
* Test all underlying implementations
* Reduce number of static values
2018-08-10 22:16:21 -07:00
Tyler Benson 6cef9b89b0 Make some things non-static 2018-08-10 15:41:26 +10:00
Tyler Benson b220309a68 PR review changes. 2018-08-10 12:23:13 +10:00
Tyler Benson 984bc7563d Add span.origin.type for JSP too.
Might be slightly redundant given `jsp.requestURL` but consistent with other instrumentation.
2018-08-10 12:14:16 +10:00
Tyler Benson d5cc84ea9f Add span for jax-rs representing controller execution
Also add additional `span.origin.type` tags for better visibility.
2018-08-10 10:36:42 +10:00
Tyler Benson a3875aff2c Logging improvements and other misc
from reviewing a customer’s logs.
2018-08-09 15:59:59 +10:00
Tyler Benson ae9d4619a4 Add instrumentation showing the rendering time 2018-08-09 13:10:45 +10:00
Tyler Benson eacc2d6402 Restructure how WeakMap is implemented
Use an interface.
Use a provider/supplier to avoid loading more onto the bootstrap classpath.
2018-08-08 16:54:44 +10:00
Gary Huang 2041d56de8 use Slf4j annotation. 2018-08-07 18:29:55 -04:00
Gary Huang abffe1779b Remove Util Logger and Refactor test
OKHttp instrumentation will not be using the java util logger, also applies the string representaiton of ip address for IPV4/6 tags. Refactored test.
2018-08-07 18:29:22 -04:00
Tyler Benson 5e55defeb3 Fix bootstrap classpath. 2018-08-07 17:11:42 +10:00
Tyler Benson d05e2cfe86 Add span for spring web controller. 2018-08-07 17:03:07 +10:00
Tyler Benson fff3118dec separate spring web and error instrumentation. 2018-08-07 16:33:51 +10:00
Tyler Benson 05dc51633a Update Spring Tests 2018-08-07 16:04:28 +10:00
Tyler Benson 9b00a27dce add javadoc and comparison 2018-08-07 12:42:14 +10:00
Tyler Benson 847484cd47 Use WeakConcurrentMap
Instead of `Collections.synchronizedMap(new WeakHashMap<>())`.
2018-08-06 14:14:57 +10:00
Tyler Benson e7aa7c52b4 Improve comments and add synchronization. 2018-08-06 11:38:28 +10:00
Tyler Benson 064ae4c238 Separate span for input and output streams. 2018-08-03 15:41:16 +10:00
Nikolay Martynov 911ad5f231
Merge pull request #417 from DataDog/mar-kolya/apache-http-client-fix-exception-handling
Apache http client fix exception handling
2018-08-01 14:58:28 -04:00
Nikolay Martynov 7ad9305927 Add some integration tests to check ByteBuddy's behavoir on class loading and parsing 2018-08-01 14:17:12 -04:00
Tyler Benson 50fde4c382 Begin 0.13.0 2018-08-01 13:03:37 +10:00
Nikolay Martynov bb2126bd9a Improve ByteBuddyElementMatchers javadoc 2018-07-31 20:14:03 -04:00
Nikolay Martynov 2bfb7b93ec Disable Lagom circuit breaker
It looks like they fail tests from time to time
2018-07-31 20:14:03 -04:00
Nikolay Martynov 78e6a9c336 Get rid of DDAdvice
Newer ByteBuddy api simplifies things.
2018-07-31 20:14:03 -04:00
Nikolay Martynov c66bd24d3a Use `safeHasSuperType` instead of `isSubType`
`isSubType` may fail on certain class lookup problems, even on classes
unrelated to given instrumentation, preventing instrumentation from
being applied.
2018-07-31 20:14:03 -04:00
Nikolay Martynov 6693a93485 Remove onInstrumentationError from LagomTest
We not longer need it since our instrumentation can handle underlying
loading problem.
2018-07-31 20:14:03 -04:00
Nikolay Martynov 6bc1d1ab8e Implement `saveHasSuperType` and use it instead of `hasSuperType`
The idea is to just 'trim' type hierarchy 'up-trees' that we cannot
resolve dring instrumentation instead of failing to instrument completely.
2018-07-31 20:13:59 -04:00
Nikolay Martynov deec4a795c Improve Apache HTTP client
Properly open and close outer span in multi-request cases
2018-07-31 20:12:17 -04:00
Nikolay Martynov 1ebe4732f8 Stop using `failSafe` matcher
It should not be necessary after we jave fixed class location issue
for ByteBuddy
2018-07-31 20:12:17 -04:00
Nikolay Martynov bae79514c0 Fix DDLocationStrategy to use DataDog ClassLoader
This allows ByteBuddy to properly find classes injected into the
agent.

Thanks @realark for providing a fix!
2018-07-31 20:12:17 -04:00
Nikolay Martynov 4ae9263e1c Set POOL_ONLY DescriptionStrategy for ByteBuddy
This makes sure no classes are loaded during instrumentation
transformation which allows us to safely instrument depndent classes.
2018-07-31 20:12:17 -04:00
Nikolay Martynov b6118f0397 Apache HTTP Client: add test for redirected request 2018-07-31 20:12:17 -04:00
Tyler Benson 9a6efe69f4 Fix netty dependency and class version checking 2018-07-31 17:42:40 +10:00
Tyler Benson b1304b478a Change http server span type back to `web` 2018-07-31 12:53:50 +10:00
Tyler Benson e6da80bb12 datastores 2018-07-31 12:53:50 +10:00
Tyler Benson 00a2e891b0 http servers 2018-07-31 12:53:50 +10:00
Tyler Benson 3856e7fd1a http clients 2018-07-31 12:53:50 +10:00
Tyler Benson 01d57fb497 elasticsearch 2018-07-31 12:53:50 +10:00
Tyler Benson d3ce57d84f mongo 2018-07-31 12:53:50 +10:00
Tyler Benson 094552cad3 memcache 2018-07-31 12:53:50 +10:00
Tyler Benson 2e7899b405 redis 2018-07-31 12:40:47 +10:00
Tyler Benson ff9ef671f3 Apply formatter on groovy files. 2018-07-31 12:09:28 +10:00
Tyler Benson 51919a77bb Apply formatter on java files. 2018-07-31 12:07:43 +10:00
Tyler Benson bc3af56b08 Apply formatter on scala files. 2018-07-31 12:07:30 +10:00
Tyler Benson b5c8a8b8fc Apply formatter on gradle files. 2018-07-31 12:04:00 +10:00
Gary Huang 4c88e1a0a8
Merge pull request #392 from DataDog/gary/uint64-id-support
Change the internal storage and handling of trace ID, span ID, and pa…
2018-07-30 15:01:10 -04:00
Tyler Benson 4e60246e17
Merge pull request #405 from DataDog/tyler/servlet-async
Refactor servlet instrumentation and disable async on response.
2018-07-30 10:27:54 +10:00
Nikolay Martynov f6edf913b7 Remove functions that do reflection which is not Java10 compliant
These functions are not used anylonger
2018-07-27 14:56:28 -04:00
Andrew Kent b64be6228c Don't check for helper classes in muzzle reference check 2018-07-27 11:03:02 -07:00
Nikolay Martynov fadce5c6b3
Merge pull request #400 from DataDog/mar-kolya/java10-support
Java10 support
2018-07-27 13:38:39 -04:00
Andrew Kent ee594f8567 Use connect operationName in httpurlconnection connect-first case 2018-07-26 15:34:27 -07:00
Andrew Kent 54485c3296 Don't trace httpurlconnection as a top-level trace 2018-07-26 15:34:27 -07:00
Andrew Kent d598515d09 Handle cases where connect() is called first 2018-07-26 15:34:27 -07:00
Andrew Kent df95af53a7 Remove getResponseCode() from httpurlconneciton instrumentation 2018-07-26 15:34:27 -07:00
Andrew Kent 2a35ecb497 Use connected field to determine io status of httpurlconnection 2018-07-26 15:34:27 -07:00
Gary Huang 2780ac7ac1 POC sun JDK http urlconnection instrumentation, currently creates one span. 2018-07-26 15:34:27 -07:00
Nikolay Martynov 0f80f7dd40 Remove old checks from HelperInjector
They are not really producing anything useful anf they depend on API
that is forbidden in Java9+
2018-07-26 10:11:24 -04:00
Nikolay Martynov 44b364332a Remove unused field and method 2018-07-26 10:11:20 -04:00
Nikolay Martynov 3f158bb47f Fix `SpockRunner` BootstrapJar creation under Java9+ 2018-07-26 10:01:55 -04:00
Nikolay Martynov 8cc2f6cbb2 Skip `jdk.internal.reflect.DelegatingClassLoader` in `ClassLoaderMatcher`
This is the same thing as `sun.reflect.DelegatingClassLoader` in older JVMs
2018-07-26 10:01:55 -04:00
Gary Huang 6317b21d5c Fix merge conflicts with service mapping change 2018-07-26 09:16:41 -04:00
Tyler Benson 1e36343485 Null or empty tags should remove previously set values.
Add context to servlet2 test.

Clean up some declared tracers that mess up the classpath.
2018-07-26 12:20:37 +10:00
Tyler Benson fb2817a134 Refactor servlet instrumentation and disable async on response.
Separate out common advice between instrumentation.
2018-07-25 15:12:55 +10:00
Nikolay Martynov b30ed0dfa0
Merge pull request #404 from DataDog/mar-kolya/fix-kafka-streaming-flaky-test
Fix flaky test in kafka streaming
2018-07-25 00:17:01 -04:00
Nikolay Martynov 5c1ac58c3f Fix flaky test in kafka streaming 2018-07-24 23:41:01 -04:00
Nikolay Martynov 7b644161d3 Migrate ApacheHttpClientTest to use span assertion api 2018-07-24 23:28:37 -04:00
Nikolay Martynov c98d5ef64b Increase ElasticSearch timeout in tests
Hopefully this would improve build stability
2018-07-24 23:07:18 -04:00
Gary Huang 93e70dcef6 Address comments and add test case for extracting non numeric IDs 2018-07-24 14:04:52 -04:00
Nikolay Martynov 3d8e76c2a4 Get rid of `WRITER_PHASER`
We have alternative way of doing the same thing and `Phaser` seems to be
not very correct way of doing this anyway.
2018-07-24 11:41:48 -04:00
Nikolay Martynov dcbf8d674a Akka-http-client: handle `singleRquest` throwing an exception 2018-07-24 11:41:48 -04:00
Nikolay Martynov 642b862c13 Do not reference `AkkaHttpClientTransformFlow` in instrumentation code
to avoid class loader problems
2018-07-24 11:41:48 -04:00
Nikolay Martynov 35b980ea89 Fix ElasticSearch config for 2.x client 2018-07-24 11:41:45 -04:00
Nikolay Martynov 732bce82d0 Fix typo 2018-07-23 10:04:53 -04:00
Nikolay Martynov 7794eacc91 Increase Cassandra request timeout in tests 2018-07-23 10:04:53 -04:00
Nikolay Martynov b4b99d991c Move AkkaHttpServerInstrumentation into Scala compilation
This is a hack to work around the problem of `auto-service` annotation
processing creating files with same name in `java` and `scala`
directories. This results in Jar having two files with the same name
instead of one concatenated file.
2018-07-23 10:04:53 -04:00
Nikolay Martynov 68ce09b461 Add missing Scala classes to list in injection classes 2018-07-23 10:04:53 -04:00
Nikolay Martynov fd5d80ba86 Make muzzle plugin apply to Scala code 2018-07-23 10:04:53 -04:00
Nikolay Martynov 161847752f Pass Span instead of Scope 2018-07-23 10:04:53 -04:00
Nikolay Martynov 5e67e6e5ba Migrate to new instrumentation API 2018-07-23 10:04:53 -04:00
Nikolay Martynov 277e7a1a3c Typo fix 2018-07-23 10:04:53 -04:00
Nikolay Martynov db895f2e34 Remove redundant plugin from akka gradle file 2018-07-23 10:04:53 -04:00
Nikolay Martynov ae37ca4b02 Add akka-http-client instrumentation: superPool 2018-07-23 10:04:53 -04:00
Nikolay Martynov 2b25de966a Add akka-http-client instrumentation
This is a very-very first pass: instrument single request
2018-07-23 10:04:53 -04:00
Nikolay Martynov 6932d581ed Add some helpful messages to AgentTestRunner assertions 2018-07-23 10:04:53 -04:00
Nikolay Martynov f9f135cbd6 Do not run Spymemcached tests locally under Java7
since it requires external Memcached container running because
testcontainers doesn't work on Java7.
2018-07-23 10:04:53 -04:00
Nikolay Martynov c844501bc5 Fixes for some minor checkstyle complaints 2018-07-23 10:04:53 -04:00
Nikolay Martynov ce7866d018 Use `io.opentracing.log.Fields.*` instead of hardcoded strings 2018-07-23 10:04:53 -04:00
Nikolay Martynov d4d770fe42 Pull out ratpack helper into seprate class to avoid copy-paste 2018-07-23 10:04:53 -04:00
Nikolay Martynov a882a5439c OkHttp instumentation: simplify error case 2018-07-23 10:04:53 -04:00
Nikolay Martynov 9d2755be17 Fix Google Java Formater violations
Some changes landed on master that do not comply with new formatter rules
2018-07-23 13:43:29 +10:00
Nikolay Martynov 4283e3acb1
Merge pull request #396 from DataDog/mar-kolya/test-http-client-timeout-increase
Increase build stability by increasing some http client timeouts
2018-07-22 21:35:32 -04:00
Tyler Benson 9988c8775f
Merge pull request #388 from DataDog/tyler/grpc
Instrument gRPC 1.5.0+
2018-07-23 11:19:48 +10:00
Nikolay Martynov 564b4e9dc3 Increase build stability by increasing some http client timeouts
This makes build more resilient to slow boxes and high parallelism
2018-07-22 00:41:37 -04:00
Nikolay Martynov f1466304e8 Move random port generation to actual usage in tests using listening ports 2018-07-20 11:57:37 -04:00
Nikolay Martynov c3825d9d52 Improve tmp dir handling in ES tests
Also make sure ES ports are allocated right before ES is started
2018-07-20 11:53:33 -04:00
Tyler Benson a34f7b849b Instrument gRPC
Adds spans for the duration of the connection and child spans for each message.
Also propagates the trace using the metadata object.
2018-07-20 12:25:04 +10:00