Commit Graph

1515 Commits

Author SHA1 Message Date
Anubhaw Arya 0344cff386 Remove hostname and port from HttpClientDecorator 2020-03-13 10:47:10 -07:00
Laplie Anderson 9868c230cf Fix JMS test library for Java 7 2020-03-13 13:10:47 -04:00
Laplie Anderson 7805f844f4
Merge pull request #1315 from DataDog/landerson/threadpoolexecutor-helper
Move ThreadPoolExecutor helper to bootstrap
2020-03-13 12:10:58 -04:00
Laplie Anderson 7cd76ed68b Move ThreadPoolExecutor helper to bootstrap 2020-03-12 18:20:03 -04:00
Laplie Anderson 994dc89672 Fix jms tests with JDK11+ 2020-03-12 17:59:57 -04:00
Laplie Anderson 6411ee358f Remove Http*Decorators from method signatures in tests 2020-03-12 13:13:17 -04:00
Laplie Anderson 6cd530a541 Move decorators to bootstrap 2020-03-11 18:41:29 -04:00
Laplie Anderson 97b0e7a21f Move concurrent helpers to bootstrap 2020-03-11 18:37:03 -04:00
Tyler Benson e4ca33d487
Merge pull request #1307 from DataDog/tyler/onmethodexit
Improve consistency of `@Advice.OnMethodExit` params
2020-03-11 15:29:58 -07:00
Brian Devins-Suresh db074b199a Make regular test less flaky too 2020-03-11 15:57:15 -04:00
Brian Devins-Suresh 00e331814d Use a different queue per test 2020-03-11 15:38:13 -04:00
Tyler Benson e0b46da375 Improve consistency of `@Advice.OnMethodExit` params
And ordering of some `helperClassNames`
2020-03-10 13:11:22 -07:00
Tyler Benson 36c063c4b3
Merge pull request #1303 from trask/fix-for-spring-jms-listeners
Fix for Spring JMS listeners
2020-03-10 09:54:54 -07:00
Laplie Anderson 1a35ced75e Tomcat access log tests 2020-03-09 16:15:57 -04:00
Laplie Anderson 4dce8776e1 Add traceId/spanId as request attributes 2020-03-09 16:15:40 -04:00
Trask Stalnaker 279af696f4 Improve test reliability 2020-03-09 09:30:31 -07:00
Trask Stalnaker 7761094280 Fix for Spring JMS listeners 2020-03-08 22:41:58 -07:00
Tyler Benson aca4b9ece9
Merge pull request #1300 from DataDog/tyler/servlet-forward
Stop creating a "top level" servlet span when in a forward/include situation
2020-03-06 11:46:27 -08:00
Nikolay Martynov 46b776f76a Include classloading instrumentation into all tests
Classloading instrument core JDK classes so we should make sure this
doesn't have bad effects on other instrumentations.
2020-03-06 13:50:56 -05:00
Nikolay Martynov 517ecca4c1 Remove explicit concurrent instrumentation dependencies
Since we include concurrent instrumentation for all instrumentatin
projects now there is no point in including it in every instrumentation.
2020-03-06 13:50:51 -05:00
Nikolay Martynov 2917034d29 Increase hystrix test timeout 2020-03-06 13:49:55 -05:00
Nikolay Martynov 4aac30826d Split Runnable and Callable instrumentations
Otherwise `Runnable` may define `call` method leading to
instrumentation exception.
See `org.h2.util.Task` as an example.
2020-03-06 13:49:55 -05:00
Nikolay Martynov 839deb779d Add java-concurrent as a dependency to all instrumentations 2020-03-06 13:49:55 -05:00
Tyler Benson caabb55ed2
Merge pull request #1301 from DataDog/tyler/grpc
Fix grpc tests with java-concurrent.
2020-03-06 10:48:03 -08:00
Tyler Benson 7c73546ba1 One more change.
This should fix the issues in latestDepTest.
2020-03-06 09:56:19 -08:00
Tyler Benson 206fbb944c Fix comments
[skip ci]
2020-03-06 09:24:50 -08:00
Tyler Benson 2e86ca2141 disable async propagation for InProcess communication. 2020-03-06 09:20:00 -08:00
Laplie Anderson 5538021ea6 classLoaderHasNoResources -> hasClassesNamed 2020-03-06 10:51:35 -05:00
Laplie Anderson a7a7501f40 Rename to commons-httpclient-2 2020-03-06 10:47:41 -05:00
Laplie Anderson 66e14d9256 Surprisingly, everything works with 2.0 2020-03-06 10:47:41 -05:00
Laplie Anderson d99c2ad240 Remove aws-sdk check 2020-03-06 10:47:41 -05:00
Laplie Anderson c13436d5e4 Add commons-httpclient integration 2020-03-06 10:47:41 -05:00
Tyler Benson ca043a67b5
Merge pull request #1298 from DataDog/tyler/classloader-matcher
ClassLoader matcher cleanup
2020-03-05 20:00:09 -08:00
Tyler Benson cea0bc8a52 Fix grpc tests with java-concurrent. 2020-03-05 19:59:21 -08:00
Tyler Benson 7bf85dbb97 Restrict dispatcher instrumentation to 2 arguments
To reduce risk of duplicate spans when delegating to a 2+ arg method.
2020-03-05 16:01:53 -08:00
Tyler Benson d25ace6627
Merge pull request #1292 from DataDog/tyler/add-test-retrys
Attempt to improve test reliability
2020-03-05 14:40:41 -08:00
Tyler Benson b1f8787ae5 Add a couple more... 2020-03-05 13:52:16 -08:00
Tyler Benson 2802009e01 Stop creating a "top level" servlet span when in a forward/include situation.
Effectively reverting 6703bd96bb

The expectation is that these are not really separate external requests, but a semantic way of processing a single request.
2020-03-05 12:52:13 -08:00
Tyler Benson cb782fdd0e Fix muzzle for trace-annotation. 2020-03-05 12:00:18 -08:00
Tyler Benson 74ea734f81 Add additional classLoaderMatchers. 2020-03-05 10:45:59 -08:00
Tyler Benson 372ba221d2 Invert the classloader matcher to remove the double negative. 2020-03-05 10:14:33 -08:00
Tyler Benson ee5cf2cf24 Attempt to improve test reliability
Add timeouts (to avoid a gradle level timeout) and retries (since we're doing it manually anyway).

I realize this is a band aid...
2020-03-04 19:02:41 -08:00
Laplie Anderson d6638f4ff5 Manual merge of tyler/classloader-precheck 2020-03-04 10:42:13 -05:00
Laplie Anderson 47fb25a8f8 Accidentally bumped the base test version up 2020-03-04 10:38:36 -05:00
Laplie Anderson fd0e10f0cb Returned a StreamedAsyncHandler instance where appropriate 2020-03-04 10:38:36 -05:00
Laplie Anderson 0c74cf031e Extract common play-ws code and add stream tests 2020-03-04 10:38:36 -05:00
Tyler Benson 95534b7bb8
Merge pull request #1283 from DataDog/tyler/classloader-precheck
Add Classloader precheck to expensive matchers.
2020-03-03 20:39:39 -08:00
Tyler Benson 4795695c43
Merge pull request #1287 from DataDog/tyler/trace-instrumentation-name
Add instrumentation name to allow configuring `@Trace`
2020-03-03 20:37:19 -08:00
Tyler Benson 34b7225a13 Add instrumentation name to allow configuring `@Trace`
Specifically, this allows annotated/configured methods to be reported to App Analytics:
- System Property: `-Ddd.trace-annotation.analytics.enabled=true`
- Environment Variable: `DD_TRACE_ANNOTATION_ANALYTICS_ENABLED=true`
or
- System Property: `-Ddd.trace-config.analytics.enabled=true`
- Environment Variable: `DD_TRACE_CONFIG_ANALYTICS_ENABLED=true`
2020-03-03 15:11:11 -08:00
Tyler Benson 042f49d800 fix muzzle and retry tests 2020-03-03 11:03:01 -08:00
Tyler Benson 7702b0585b Add Classloader precheck to expensive matchers.
Benchmark results:
```
Benchmark                                                             Mode  Cnt   Score   Error  Units
ClassRetransformingBenchmark.WithAgent.testTracedRetransform          avgt       21.933          ms/op
ClassRetransformingBenchmark.WithAgent.testUntracedRetransform        avgt        6.171          ms/op
ClassRetransformingBenchmark.WithAgentMaster.testTracedRetransform    avgt       22.129          ms/op
ClassRetransformingBenchmark.WithAgentMaster.testUntracedRetransform  avgt        6.517          ms/op
ClassRetransformingBenchmark.testTracedRetransform                    avgt        0.876          ms/op
ClassRetransformingBenchmark.testUntracedRetransform                  avgt        0.867          ms/op
```

I also saw a small improvement in application startup time.
2020-03-03 10:29:10 -08:00
Nikolay Martynov 89be6b5c06 Ignore majority of google api
And several other google libraries
2020-03-03 11:45:22 -05:00
Nikolay Martynov d74d65175b Ignore majority of cassandra classes 2020-03-03 11:45:22 -05:00
Nikolay Martynov e92ad38cc8 Tighten up aws instrumentation matcher a bit 2020-03-03 11:45:22 -05:00
Nikolay Martynov e22ce02762 Add test for ignore matchers for libraries 2020-03-02 16:37:39 -05:00
Tyler Benson f0e59edb5e
Merge pull request #1274 from DataDog/tyler/matcher-hashcode-equals
Add proper hashcode/equals methods to our matchers
2020-03-02 10:37:51 -08:00
Trask Stalnaker 0984ac2a61 Fix class loading instrumentation 2020-02-29 15:28:50 -08:00
Tyler Benson 80f13bc670 Add proper hashcode/equals methods to our matchers
I copied over the methods that would have been generated had the `HashCodeAndEqualsPlugin` actually been working.

Also updated the matcher tests to use the TypePool for more realistic values.
2020-02-28 14:13:18 -08:00
Nikolay Martynov 0b196ed3ec Merge branch 'master' into mar-kolya/constantify-decorator-matcher 2020-02-28 01:41:02 +01:00
Lev Priima 885212ee36 ClassLoaderHasNoResourceMatcher: put to cache outside critical section 2020-02-27 13:12:23 -08:00
Tyler Benson 68e4bf8375
Merge pull request #1266 from DataDog/tyler/imply-not-interface
Imply not(isInterface()) call for expensive matchers
2020-02-27 12:54:15 -08:00
Tyler Benson 35e00686b3 Imply not(isInterface()) call for expensive matchers
Also remove from simple named("some.name") matchers to avoid metadata lookup.
2020-02-27 12:13:42 -08:00
Tyler Benson 300c795e72 Remove conversion from URI to String back to URI
Apply same change as here: https://github.com/open-telemetry/opentelemetry-auto-instr-java/pull/191
2020-02-27 10:21:06 -08:00
Tyler Benson eb8de0d3ab Apply matcher if debug logging enabled to avoid confusing log output.
Otherwise it was "Skipping" every unrelated class.
2020-02-25 18:04:27 -08:00
Tyler Benson bd82166b58 Rename methods that don't require disambiguation. 2020-02-24 08:35:19 -08:00
Tyler Benson f70c35842d Move matchers to separate package and split matcher classes out 2020-02-24 08:31:12 -08:00
Nikolay Martynov 833f67816e
Merge pull request #1248 from DataDog/mar-kolya/reduce-superclass-matcher-exposure
Avoid calling superclass matcher where possible
2020-02-21 21:16:52 -05:00
Nikolay Martynov b6d374e3a0 Avoid calling superclass matcher where possible
Saves about 100ms of startup time on test app
2020-02-21 15:08:39 -05:00
Tyler Benson ecf9bcc655
Make sure CallDepthThreadLocalMap is always reset (#1227)
Make sure CallDepthThreadLocalMap is always reset
2020-02-21 11:03:51 -08:00
Nikolay Martynov b1d314aff1 Specify types in jaxrs mtcher to help Idea with type inference 2020-02-21 11:34:25 -05:00
Tyler Benson a4f34f4088 Latest tomcat release seems to have some issues
Instrumentation muzzled: [jsp, jsp-compile] -- datadog.trace.instrumentation.jsp.JasperJSPCompilationContextInstrumentation on jdk.internal.loader.ClassLoaders$AppClassLoader@2c13da15
-- datadog.trace.instrumentation.jsp.JSPDecorator:39 Missing method getServletContext#()Ljavax/servlet/ServletContext;
2020-02-20 20:35:25 -08:00
Tyler Benson 5e37ca02f1
Merge pull request #1240 from DataDog/tyler/executor-matcher-reorder
Reorder java-concurrent matchers
2020-02-20 17:54:39 -08:00
Tyler Benson 660921517c
Remove costly matchers from ignore list (#1233)
Remove costly matchers from ignore list
2020-02-20 17:52:43 -08:00
Trask Stalnaker 8949d6c05f Make sure CallDepthThreadLocalMap is always reset 2020-02-20 16:53:57 -08:00
Tyler Benson b80e9857d2 Reorder java-concurrent matchers
Move the expensive matcher to last.

In theory this should help, but did not seem to make a significant difference in basic startup benchmarks.
2020-02-20 11:34:39 -08:00
Laplie Anderson d45ead1284 split matching into safeExtendsClass and safeHasInterface 2020-02-19 21:22:17 -05:00
Tyler Benson 6e4b55304e Add special handling for ignoring `javax.decorator.Decorator` annotated classes. 2020-02-19 16:24:23 -08:00
Nikolay Martynov d49c08691e
Merge pull request #1229 from DataDog/mar-kolya/fix-jaxrs-matching
Fix JaxRs matching
2020-02-19 07:01:21 -05:00
Nikolay Martynov 02fb8d8888 Fix JaxRs matching
Paranthesys was missplaced leading to more complicated matcher than needed
2020-02-18 18:42:36 -05:00
heathkd 917deb19be change imports to use bootstrap api package 2020-02-14 20:48:18 -05:00
heathkd f3537e1665 change module and file names to match version of earliest supported version of spring-context 2020-02-14 20:47:16 -05:00
heathkd 9eb51248cd address PR comments 2020-02-14 20:47:16 -05:00
heathkd b21e361591 add test for interval task and trigger task 2020-02-14 20:46:26 -05:00
heathkd cc1aaf5fc5 replace Trace annotation with regular API interaction 2020-02-14 20:46:26 -05:00
heathkd 68c323ac56 create ScheduledTasks bean and application context config 2020-02-14 20:46:00 -05:00
Nikolay Martynov a04cc15ce8 Fix some tests 2020-02-14 12:59:30 -05:00
Nikolay Martynov fd75575796 Disable peer hostname tag for http servers
Getting peer hostname makes DNS request
2020-02-14 11:25:07 -05:00
Tyler Benson 618780b62f
More general class loading instrumentation (#1218)
More general class loading instrumentation
2020-02-13 11:54:25 -08:00
Trask Stalnaker 94dd781e50 Better naming 2020-02-13 11:31:47 -08:00
Trask Stalnaker 4dfd9534e8 Add optimization for IBM JVM 2020-02-13 11:31:47 -08:00
Trask Stalnaker a0224e2ad7 Fix for test failure on IBM JVM 2020-02-13 11:31:47 -08:00
Trask Stalnaker bfc7a0de55 More general class loading instrumentation 2020-02-13 11:31:45 -08:00
Giuseppe Cafarelli f94f76488f Add test for elasticsearch 2 TransportActionListener 2020-02-13 14:34:21 +01:00
Giuseppe Cafarelli 8f552993a6 Fix NPE on TransportActionListener for elasticsearch 2 2020-02-12 12:14:57 +01:00
Laplie Anderson 9023c6e1c7 Fix a couple tests using the wrong arguments 2020-02-11 11:44:46 -05:00
Laplie Anderson 0cb0ae0a48 Less repetition in gradle files 2020-02-11 11:44:46 -05:00
Laplie Anderson c79fe3a459 Create shared internal jar 2020-02-11 11:44:46 -05:00
Tyler Benson 51bffa2e8a Move agent api classes to bootstrap package so they're not analyzed by muzzle
Also move jdbc classes to bootstrap to reduce size and complexity of those reference checkers.

These changes reduce the total file size of these instrumentation classes by 635k, which should also result in decent memory savings.
2020-02-10 15:09:15 -08:00
heathkd 7e62bca7fe limit hibernate latest dependency test to 5.x 2020-02-07 17:57:34 -05:00
Laplie Anderson a811c027ce
Merge pull request #1188 from DataDog/landerson/finatra
Finatra Instrumentation
2020-02-04 17:36:47 -05:00