Commit Graph

1150 Commits

Author SHA1 Message Date
Andrew Kent 3295739e28 Fix race conditions in custom log manager test
Fix two race conditions in the custom log manager test.

- Remove possibility of false positives by blocking until jmx thread
  sends statsd metrics
- Disable logging in test to avoid deadlock in jmxfetch which can
  occur when the JVM shuts down too quickly
2019-01-16 08:57:59 -08:00
Nikolay Martynov 1b1f620318 Improve Vertx test stability
By actiually waiting for test server to start listening.
2019-01-11 12:14:17 -05:00
Marco Ferrer 63c28cef31 add kotlin test config to java-concurrent project 2019-01-09 19:20:31 -05:00
Marco Ferrer a31abc67e9 add support for instrumenting kotlin coroutine schedulers 2019-01-09 19:04:42 -05:00
Andrew Kent cc8db0b11f Workaround module bug by skipping LogManager$Cleaner instrumentation 2019-01-09 15:03:43 -08:00
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