Nikolay Martynov
0d34aa2e96
Stop skipping cassandra core instrumentation
...
Looks like it has lots of runnables sprinkled all over the place
2020-03-06 13:49:55 -05:00
Nikolay Martynov
c1c9ffa571
Fix couchbase ignores
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
Laplie Anderson
0f65b4db76
Merge pull request #1286 from DataDog/landerson/play-streaming
...
Fix Play-ws stream() bug
2020-03-05 10:42:54 -05: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
d14adcf712
Chunked encoding didnt work as expected
2020-03-04 18:08:32 -05:00
dougqh
7a183e755e
Switching to per-injection temp dir to avoid race
...
Upon review, we realized that there was a race not just between processes but also with multiple threads in the same process.
This race happens because of the effort to proactively clean-up directories.
This left two choices...
- assume per-process exclusivity -- and resolve the race with reference counting
- move to a temp dir per injection
This change uses the later strategy which is potentially more expensive but safest.
2020-03-04 15:14:07 -05:00
Trask Stalnaker
166d951a10
Cache is not needed anymore
2020-03-04 09:47:15 -08:00
Trask Stalnaker
c63c981221
Remove non-delegating class loader check
...
This is not needed anymore now that loadClass() is being instrumented to
deal with non-delegating class loaders.
2020-03-04 09:46:20 -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
Laplie Anderson
525738b177
Add http client test for chunked responses
2020-03-04 10:34:46 -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
Nikolay Martynov
11f281edb9
Merge pull request #1282 from DataDog/mar-kolya/add-additional-ignores
...
Add additional ignores
2020-03-03 21:43:55 -05: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
4cf39b7a99
Merge pull request #1281 from jpbempel/jpbempel/jmxfetch035
...
Update JMXFetch to 0.35
2020-03-03 14:45:23 -08:00
dougqh
4ad51dd9fa
Introducing TempDir helper
...
Introduces a TempDir helper class
This was done to help handle an oversight in the prior per-process temp dir change. The fallback mode is to use the shared java.io.tmpdir directly.
When using java.io.tmpdir, we don't want to be creating and destorying, since it may be shared.
The new TempDir object is constructed knowing whether the TempDir is per-process or shared -- and the behavior of its prepare and cleanup method change accordingly.
When using a per-process temp dir, the dir is creating and deleted regularly. When using a shared temp dir, those methods become nops.
Creating TempDir also made it easy to avoid repeatedly calling deleteOnExit in the event that delete fails, so I made that change as well.
2020-03-03 16:08:37 -05:00
dougqh
d2ecce477e
Switching to per-process temp dir
...
Switching to create a per-process temp dir as protection against file name collisions. This is done by introduced TEMP_DIR which is calculated during class initialization.
The current selection process generates a random directory name and sees if that name is availabe in java.io.tmpdir. If it is that name is selected; otherwise, another name is generated.
If no unique name is found after 10 rounds of generation, the code falls back to the old behavior of writing directly to java.io.tmpdir.
2020-03-03 16:08:29 -05:00
dougqh
c50899f184
Creating helper methods for injection
...
Create helper methods injectBootstrapClassLoader & injectClassLoader.
The directory creation and retry logic that will be added to the handling of the bootstrap will complicated the code.
To keep the code readable, I broke the bootstrap handling into its own method. To keep the level abstraction consistent, I did the same with injectClassLoader.
2020-03-03 16:08:19 -05:00
dougqh
3417fd8940
Improving debuggability by requestingName
...
This change adds a requestingName field to help in diagnosing the source of any injection failures.
Usually, the requestingName is the simple class name of the Instrumenter; however, this change doesn't propagate the Instumeneter named through FieldBackedProvider.
2020-03-03 16:08:09 -05:00
Nikolay Martynov
a62db5bcad
Ignore more spring
2020-03-03 14:51:25 -05:00
Nikolay Martynov
9f1c821d37
Ignore javax.el
2020-03-03 14:51:25 -05:00
Nikolay Martynov
33c8fc0f3a
Ignore snakeyaml
2020-03-03 14:51:23 -05:00
Nikolay Martynov
864e2884eb
Ignore lucene
2020-03-03 14:51:22 -05:00
Nikolay Martynov
e8c31e9dd6
Ignore lagom: we do not instrument it directly
2020-03-03 14:51:22 -05:00
Nikolay Martynov
dea3d72cc6
Ignore jsonpath
2020-03-03 14:51:22 -05:00
Nikolay Martynov
d5ea1167a6
Ignore h2
2020-03-03 14:51:19 -05: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
d029713740
Ignore org json simple
2020-03-03 11:45:22 -05:00
Nikolay Martynov
78268d1f0f
Fix logback
2020-03-03 11:45:22 -05:00
Nikolay Martynov
8cdde847f9
Ignore mustachejava
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
22e7fe8f82
Add exception for instrumented runnable in logback
2020-03-03 11:45:22 -05:00
Nikolay Martynov
52e6f42f03
Codehale metrics provides servlets that we instrument
2020-03-03 11:45:22 -05:00
Nikolay Martynov
bcec89895e
Ignore couchbase packaged deps
2020-03-03 11:45:22 -05:00
Nikolay Martynov
4960e0630d
Ignore carrotsearch.hppc and codahale.metrics
2020-03-03 11:45:22 -05:00
Nikolay Martynov
9d76281ddf
Ignore jcommander
2020-03-03 11:45:22 -05:00
Nikolay Martynov
646bf5bb05
Ignore logback
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
31a4c9a427
Ignore kotlin runtime
2020-03-03 11:45:22 -05:00
Nikolay Martynov
a59ab43efc
Ignore org.objectweb.asm.
2020-03-03 11:45:22 -05:00
Nikolay Martynov
dad9e72af7
Ignore more groovy classes
2020-03-03 11:45:22 -05:00
Nikolay Martynov
dedfc7dd0b
Make ignired classes test assertion more informative
2020-03-03 11:45:22 -05:00
Nikolay Martynov
fc5e2cc747
Ignore apache xml tools
2020-03-03 11:45:22 -05:00
Nikolay Martynov
fe9cf09249
Ignore jackson and cglib
2020-03-03 11:45:22 -05:00
Nikolay Martynov
73abe16c26
Add a comment
2020-03-03 07:29:22 -05:00
jean-philippe bempel
14dd0f1147
Update JMXFetch to 0.35
...
Includes many improvements regarding memory footprint and allocations
2020-03-03 08:49:51 +01:00
Nikolay Martynov
e22ce02762
Add test for ignore matchers for libraries
2020-03-02 16:37:39 -05:00
Nikolay Martynov
a1a3957ca8
Rename variable
2020-03-02 16:37:39 -05:00
Nikolay Martynov
5b4c7f8c92
Merge pull request #1273 from DataDog/mar-kolya/profile-force-early
...
Add an option to force profiling right in the beginning of premain
2020-03-02 22:18:05 +01:00
Nikolay Martynov
d46a3be123
Reduce log verbocity
2020-03-02 15:26:04 -05:00
Nikolay Martynov
b73bf22f2d
Merge pull request #1279 from DataDog/mar-kolya/make-profiling-test-more-resilient
...
Make profiling controller test more resilient to delays
2020-03-02 19:43:02 +01: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
Nikolay Martynov
6ff723e191
CR changes
2020-03-02 12:25:20 -05:00
Nikolay Martynov
2eb7aa7d20
Increase CleanerTest timeout to help IBM JVM to cope
2020-03-02 12:11:11 -05:00
Nikolay Martynov
ba55f0ed10
Make profiling controller test more resilient to delays
2020-03-02 11:48:21 -05:00
Tyler Benson
abd115cff5
Merge pull request #1275 from trask/fix-class-loading-instrumentation
...
Fix class loading instrumentation
2020-03-02 08:17:24 -08:00
Nikolay Martynov
a1f6ca1ee7
Make lz4 default compression
...
Also do some renaming in compression settings
2020-03-02 10:12:47 -05:00
Nikolay Martynov
b3d81281f6
Merge branch 'master' into mar-kolya/profiling-lz4
2020-03-02 10:02:09 -05:00
Trask Stalnaker
0984ac2a61
Fix class loading instrumentation
2020-02-29 15:28:50 -08:00
Nikolay Martynov
2c33f0ace7
Add an option to force profiling right in the beginning of premain
...
Currently this blows up JVMs before 14
2020-02-29 00:36:50 +01: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
Tyler Benson
55276148b9
Merge pull request #1251 from DataDog/devinsba/fast-reference-matcher
...
Fail fast in the matcher, let the debug outputs use the cache
2020-02-28 09:56:45 -08:00
Nikolay Martynov
cf5fe9feff
Merge branch 'master' into mar-kolya/speedup-context-injection-matchers
2020-02-28 02:07:37 +01:00
Nikolay Martynov
3d4ab93888
Merge branch 'master' into mar-kolya/speedup-context-injection-matchers
2020-02-28 02:01:33 +01: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
dougqh
7c68238f6a
Merge branch 'master' of github.com:DataDog/dd-trace-java
2020-02-27 14:50:11 -05:00
Tyler Benson
ed061b6979
Merge pull request #1268 from DataDog/tyler/aws-uri
...
Remove conversion from URI to String back to URI
2020-02-27 11:17:00 -08:00
Tyler Benson
4e8e098330
Merge pull request #1257 from DataDog/tyler/caching-typedescription
...
Return TypePool.Resolution that caches TypeDescription calls.
2020-02-27 11:12:40 -08:00
Laplie Anderson
6ed5f56bb7
Merge pull request #1255 from DataDog/landerson/spring-blacklist
...
Add list of blacklisted spring classes
2020-02-27 14:07:42 -05: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
Nikolay Martynov
2f71ad850f
Constantify non decorator matcher
2020-02-27 17:52:20 +01:00
Nikolay Martynov
d53c138016
Make FieldBackedProvider inject fields only once
2020-02-27 16:24:01 +01:00
Nikolay Martynov
6e10eee6ee
Use isEmpty
2020-02-27 15:53:48 +01:00