Commit Graph

4425 Commits

Author SHA1 Message Date
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 6b8edd52a3
Merge pull request #213 from trask/dd-merge
Merge changes from dd-trace-java 0.45.0
2020-03-06 10:46:08 -08:00
Trask Stalnaker 5c3912ccda
Remove accidentally merged file (#214) 2020-03-06 10:40:02 -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 6ebc571ef3
Merge pull request #1299 from DataDog/landerson/commons-httpclient
Add commons-httpclient integration
2020-03-06 11:50:37 -05: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
Trask Stalnaker b2db595430 Merge tag 'v0.45.0' into dd-merge 2020-03-05 21:49:39 -08:00
Trask Stalnaker 9ff1fca3fd
Rename a few modules (#207)
* Rename classloading module to class-loader

* Rename datastax-cassandra module to cassandra

* Rename reactor-core module to reactor

* Rename cdi module to cdi-testing

* Rename aws-java-sdk module to aws-sdk

* Rename class-loader module to java-class-loader
2020-03-05 20:21:50 -08: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
Trask Stalnaker 7370202340
Properly close() the FileReader for Config (#210)
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2020-03-05 16:03:43 -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
Trask Stalnaker 2f1b802aad
Rename mongo modules (#206)
* Rename mongo modules

* Update tracer name
2020-03-05 14:18:45 -08:00
Tyler Benson b1f8787ae5 Add a couple more... 2020-03-05 13:52:16 -08:00
Trask Stalnaker 5ecdeba977
Rename jax-rs-* modules (#208) 2020-03-05 13:42:17 -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
Trask Stalnaker f91549e799
Simplify some tests by using runUnderTrace (#204) 2020-03-05 09:50:41 -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
Tyler Benson 175f8f2f4a
Merge pull request #1288 from trask/remove-non-delegating-loader-check
Remove non-delegating loader check
2020-03-04 15:29:45 -08:00
Laplie Anderson d14adcf712 Chunked encoding didnt work as expected 2020-03-04 18:08:32 -05:00
Tyler Benson 6bf605122c Begin 0.46.0 2020-03-04 14:43:16 -08:00
Tyler Benson 61b9980c77 Version 0.45.0 2020-03-04 14:37:48 -08: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 725cebcd6b
Remove non-delegating class loader check (#203)
This is not needed anymore now that loadClass() is being instrumented to
deal with non-delegating class loaders.
2020-03-04 10:42:05 -08: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