Commit Graph

1943 Commits

Author SHA1 Message Date
Tyler Benson b69f9ea041 Enable async propagation for grpc client callbacks. 2019-08-15 17:12:32 -07:00
Nikolay Martynov 63cd73e79e Remove obsolete check
We are no longer using UrlConnection to send traces
2019-08-14 16:46:31 -04:00
Nikolay Martynov b0ff861392 Do not trace openConnection for Datadog ClassLoader 2019-08-14 16:46:23 -04:00
Tyler Benson ca040ab0dd Update JMXFetch to 0.30.1 2019-08-14 11:27:30 -07:00
Tyler Benson f5b73260ed Add instrumentation and tests for Grizzly 2.x Http Server 2019-08-13 16:05:11 -07:00
Tyler Benson ab623ab7b4
Merge pull request #942 from DataDog/tyler/http-server-testing
Jetty 8 test migration and ignoreParent
2019-08-13 13:07:18 -07:00
Tyler Benson bbfd02befc Update Jackson to 2.9.9.3
As recommended by https://nvd.nist.gov/vuln/detail/CVE-2019-14379

(Remove unused dependency)
2019-08-12 16:41:57 -07:00
Tyler Benson 2d08464be3 Fixes 2019-08-07 10:48:14 -07:00
Tyler Benson 6dd729b843 Jetty 8: ignore parent and move to HttpServerTest
This method of using jetty doesn’t seem to work with Servlet’s Async.  Native Jetty uses Continuations which we don’t support and should investigate instrumenting.
2019-08-07 09:35:04 -07:00
Tyler Benson 49249c0c6e Move server field to HttpServerTest 2019-08-07 08:35:18 -07:00
Tyler Benson f3e9fa22ef Add HttpServerTest for redirects 2019-08-07 08:35:18 -07:00
Laplie Anderson 548e4ed6e4
Merge pull request #934 from DataDog/landerson/remove-temp-jars
Eliminate temporary jars for instrumentation, jmxfetch, and bootstrap
2019-08-06 18:32:41 -04:00
Tyler Benson 1cfa847081
Merge pull request #941 from DataDog/tyler/common-deps
Remove common (redundant) dependencies
2019-08-06 15:29:14 -07:00
Tyler Benson 95a294a560 Remove common (redundant) dependencies 2019-08-06 14:51:04 -07:00
Tyler Benson efd0e5fb18 muzzle fix 2019-08-06 16:26:43 -04:00
Laplie Anderson 7b023ca95a Always use reflection to get VM args 2019-08-06 16:12:43 -04:00
Tyler Benson d77487017e muzzle fix 2019-08-06 08:58:36 -07:00
Tyler Benson 38cc03ae9e Misc fixes 2019-08-06 08:11:37 -07:00
Tyler Benson 668b1059f5 Migrate vertx tests to HttpServerTest 2019-08-05 15:52:04 -07:00
Laplie Anderson ff0cd73381 Getting the -javaagent parameter is necessary in some cases 2019-08-05 13:53:38 -04:00
Laplie Anderson 1a26e73ae8 Some tests need the agent jar loaded as an agent 2019-08-05 12:20:19 -04:00
Laplie Anderson ba6ff678db Change agent jar inclusion in tests that launch a process
The tests were the main problem. By using a different approach to pass in the agent jar, the TracingAgent code can be much simpler
2019-08-05 12:06:43 -04:00
Tyler Benson c5ccc67743 Migrate Akka-Http Server tests and add ignoreParent() 2019-08-05 08:42:46 -07:00
Tyler Benson c60e1dbcba Set ignoreActiveSpan for Servlet 2 and capture status code
This change wraps the servlet response object in order to collect the status code.  This can be risky if the code is expecting a raw type object.  We are extending a standard “HttpServletResponseWrapper” though, so it should be easy to work around.

This change also moves to the standard HttpServerTest for Servlet 2.
2019-08-05 08:42:46 -07:00
Tyler Benson 2aa69d8203
Merge pull request #932 from DataDog/tyler/servlet-testing
Migrate servlet tests to HttpServerTest and ignoreActiveSpan for "root"
2019-08-05 08:35:48 -07:00
Laplie Anderson a9d0d2cbbe Use CodeSource instead of javaagent arg
Check both TracingAgent.class and DatadogClassloader.class for code source
2019-08-05 10:41:05 -04:00
Laplie Anderson 8d41e60182 Simple test to check loading of bootstrap in a launched vm 2019-08-02 15:39:36 -04:00
Tyler Benson 6f229305bb Review fixes 2019-08-02 10:01:03 -07:00
Laplie Anderson 1381e718fe More complicated logic to reflectively get VM args on different jdks
Support the differences between IBM and Oracle jdks along with differences between 8 and 12
2019-08-02 10:27:45 -04:00
Luca Abbati 097c8186ba
Merge pull request #906 from DataDog/labbati/atlas-1.1.0-compatibility
Make netty 4.0 attributes definition compatible with Apache Atlas 1.1.0
2019-08-02 16:27:23 +02:00
Laplie Anderson a6ba2d25fe A more reliable way to get the agent jar without breaking logging 2019-08-01 12:45:17 -04:00
Laplie Anderson 21b12328fa OSGI bootstrap delegation 2019-07-31 11:32:20 -04:00
Laplie Anderson e8e4f2649b Bootstrap prefixes need to be in *3* places 2019-07-31 10:41:42 -04:00
Laplie Anderson 5c73935178 Bootstrap prefixes need to be in 2 places 2019-07-30 21:05:38 -04:00
Laplie Anderson 273feafa94 Use the bootstrapProxy to load jars. Better bootstrap url algo 2019-07-30 19:50:16 -04:00
Laplie Anderson cf98110991 JMXFetch loading threw permission errors 2019-07-30 16:56:49 -04:00
Laplie Anderson c41536cbe2 Fix failing tests
Add TracingAgent to list of bootstrap class
Fix renaming tests
Fix JMXFetch path splitting
2019-07-30 15:27:47 -04:00
Tyler Benson 9681b91f3e Fix test. Format. 2019-07-29 15:27:26 -07:00
Laplie Anderson c275143eae Shadow the bootstrap jar into the main agent jar 2019-07-29 17:01:55 -04:00
Laplie Anderson a1f8cad2e8 Tooling and jmxfetch temp jars removed
Enhanced the DatadogClassloader to work with jars inside other jars.  No need to create the jars in a temp directory anymore
2019-07-29 17:01:55 -04:00
Laplie Anderson 7e1266b39f Use try with resources to read agent version
More compact and gets rid of warnings
2019-07-29 17:01:55 -04:00
Tyler Benson d6b903665e Copy servlet listener over to new context on dispatch.
This allows it to finish the span with the correct response.
2019-07-26 16:30:23 -07:00
Tyler Benson c3203dace8 Migrate servlet tests to HttpServerTest
Currently missing the authentication tests which need to be added to the parent, but other than that, testing is more thorough.

Discovered that trace propagation for Jetty Async is currently busted so I commented that portion of the test out until we can get it fixed.
2019-07-26 16:01:06 -07:00
Tyler Benson 023fb397b5
Merge pull request #928 from DataDog/tyler/http-server-testing
Base HttpServerTest and updated Netty test
2019-07-26 12:59:49 -07:00
Luca Abbati 8609a07eaf
Merge branch 'master' of github.com:DataDog/dd-trace-java into labbati/atlas-1.1.0-compatibility 2019-07-26 11:23:06 +02:00
Tyler Benson 0d1bf5edd7 Limit Vert.x tests to 3.x
4.0.0-milestone1 was just released and is incompatible.
2019-07-25 15:32:54 -07:00
Tyler Benson c1ec277944 Base HttpServerTest and updated Netty test 2019-07-24 15:54:07 -07:00
Tyler Benson aaba3fc095 Fix trace propagation 2019-07-22 11:02:24 -07:00
Johan Vandeweerd fff8006e51 Remove unused private method 2019-07-22 11:01:41 -07:00
Johan Vandeweerd 0043efa164 Add documentation on conditions when DefaultWebClientAdvice is not applied 2019-07-22 11:01:41 -07:00
Johan Vandeweerd 633db43cb1 Fix typo rawStatusCode in javadoc 2019-07-22 11:01:41 -07:00
Johan Vandeweerd bc51f04bd3 Replace hasSuperType with safeHasSuperType 2019-07-22 11:01:41 -07:00
Johan Vandeweerd 8f96205579 Add Javadoc to rawStatusCode method that is not part of ClientResponse in spring-webflux-5.0 2019-07-22 11:01:41 -07:00
Johan Vandeweerd 7059cca3cc Add test for spring webflux webclient 2019-07-22 11:01:41 -07:00
Johan Vandeweerd 872a099722 Remove onPeerConnection decorator call 2019-07-22 11:01:41 -07:00
Johan Vandeweerd 23b8caa27c Add decorator hooks during lifecycle of Publisher 2019-07-22 11:01:41 -07:00
Johan Vandeweerd ac11bba616 Replace operation name with static value 2019-07-22 11:01:41 -07:00
Johan Vandeweerd 35b924b397 Replace span.log with span.tag 2019-07-22 11:01:41 -07:00
Johan Vandeweerd f5f8fe1c96 Add javadoc to clarify usage of this class 2019-07-22 11:01:41 -07:00
Johan Vandeweerd e4560ba50f Instrument all subtypes of ExchangeFunction instead of only ExchangeFunctions$DefaultExchangeFunction 2019-07-22 11:01:41 -07:00
Johan Vandeweerd 0e9edb1205 Aligned instrumentation names between DefaultWebClientInstrumentation and SpringWebfluxHttpClientDecorator 2019-07-22 11:01:41 -07:00
Johan Vandeweerd 091648d4c7 Enable tracing for Spring Webflux WebClient 2019-07-22 11:01:41 -07:00
Johan Vandeweerd 797003b585 Moved Spring Webflux instrumentation code to server subpackage 2019-07-22 11:01:41 -07:00
Tyler Benson 7571b778ad
Merge pull request #886 from DataDog/tyler/netty-client-callback
Change the scope for the netty client callback
2019-07-22 11:00:17 -07:00
Luca Abbati 0ff56b0a9f
Improve tests readability moving common instance to test class 2019-07-22 11:19:13 +02:00
Luca Abbati 3817e76130
Apply doubled-check locking + same approach to attributes definition for netty-4.1 2019-07-22 11:15:33 +02:00
Laplie Anderson 22dc30526a
Merge pull request #925 from DataDog/landerson/resourcename-on-annotation
Add resource name to the @Trace annotation
2019-07-19 12:43:19 -04:00
Tyler Benson ea4fc4ab28 Use NoopSpan instead of null for null parent.
Fix some more tests.
2019-07-19 09:26:40 -07:00
Tyler Benson e692605a3b Fix formatting 2019-07-19 09:26:40 -07:00
Tyler Benson 53ef8f020f Additional testing for Vert.x
Adds reactive/circuitbreaker tests.
2019-07-19 09:26:40 -07:00
Tyler Benson 0e83304a87 Update Ratpack latest test 2019-07-19 09:26:40 -07:00
Tyler Benson 6ccb0d71d8 Change the scope for the netty client callback
Previously the scope was the http client span, which could result in deep nesting.  Now it is the parent span.

Before
[——————Parent—————]
   [ ^ ———Client—————]
                        [ ^—Child—]

Now:
[——————Parent—————]
   [ ^ —Client—] [ ^—Child—]

Also improve the tests.
2019-07-19 09:26:40 -07:00
Laplie Anderson cad2a3d4a4 Set resource name in a way that doesn't need to reference DDSpanBuilder 2019-07-19 12:26:17 -04:00
Luca Abbati 5921ed3ed1
Remove code not intended to be there 2019-07-19 18:14:48 +02:00
Laplie Anderson d101bea085 Add DDSpanBuilder to helper classes of both instrumentations 2019-07-19 12:11:10 -04:00
Pedro Silva ef5a006df2 changes requested: remove iterator() implementation from TracingList. refactor unit tests to expect only one element to be consumed. Kafka embedded instance as a Rule 2019-07-19 16:45:34 +01:00
Luca Abbati 9f0ec7ec49
Update helper classes 2019-07-19 17:24:58 +02:00
Luca Abbati 95a963a364
Fix build with additional WeakHash map implementation 2019-07-19 17:05:40 +02:00
Luca Abbati edacd7a41d
Refactor weak hash map to be able to reuse functionalities 2019-07-19 16:18:38 +02:00
Laplie Anderson 331b8c8e99 Add resource name to the @Trace annotation 2019-07-19 09:52:19 -04:00
Pedro Silva 2627a452c0 unit tests for records(TopicPartition) method of kafka-clients instrumentation. introduce safeguards when instrumenting iterator() so that duplication of traces is not allowed. do not allow subList() to be instrumented 2019-07-18 23:09:33 +01:00
Luca Abbati 35b928be7c
Refactor ClassLoaderScopeWekaMap 2019-07-18 15:34:26 +02:00
Nikolay Martynov 05af20d29c
Merge pull request #921 from DataDog/mar-kolya/fix-javadoc
Minor javadoc fix
2019-07-18 09:03:37 -04:00
Nikolay Martynov ab7786d352 Minor javadoc fix 2019-07-17 16:58:29 -04:00
Laplie Anderson 0f9b28df27
Merge pull request #914 from DataDog/landerson/google-http-client
Instrumentation of Google Http Client
2019-07-17 16:17:38 -04:00
Luca Abbati e3a6d40e77
Add tests for ClassLoaderScoperWeakMap 2019-07-17 12:46:24 +02:00
Luca Abbati 48aff5f754
Add all helpers required for ClassLoaderScopedWeakMap usage + re-enable all tests 2019-07-17 09:49:26 +02:00
Luca Abbati 840b8b407d
No matter what, it won't work :) I am now in the mood 'try everything in the world until it works' 2019-07-16 15:39:00 +02:00
Luca Abbati cb430c566b
Remove obsolete test 2019-07-16 11:53:22 +02:00
Luca Abbati bfa5712c04
Add comments to ClassLoader scoped weak map 2019-07-16 11:02:26 +02:00
Luca Abbati de6f33c035
Draft of per-classloader netty AttributeKey definition 2019-07-16 11:02:25 +02:00
Luca Abbati fac3a93445
Make netty 4.0 attributes definition compatible with Apache Atlas 1.1.0
The issue we are trying to fix here seems to be a result of two concurrent issues.

Cassandra driver's used by atlas 1.1.0 brings in a old version of netty < 4.0.23.

In version 4.0.25 netty raised exception in `UniqueName` class for duplicate name

```
if (map.putIfAbsent(name, Boolean.TRUE) != null) {
            throw new IllegalArgumentException(String.format("'%s' is already in use", name));
        }
```

This changed in 4.0.26 where exception was not thrown, instead the duplicate key was just ignored.

```
    protected UniqueName(String name) {
        this.name = checkNotNull(name, "name");
        id = nextId.incrementAndGet();
    }
```

Now this alone would not be enough. The only way I was able to reproduce is if two different class loaders tries to load the
same class `AttributeKeys` twice.
I tried to look into Atlas source code (which is huge) and I could not find a clear path of how this would be possible.

Further more, looking at some build scripts that a user experiencing this issue provided,
it looks like they are doing everything correctly and there is nothing they should change.

In conclusion, I believe that even if this is not a very clean approach,
we should be resilient to this use case, when a customer using netty <4.0.25 in an
older version of Apache Atlas (or with some sort of class loader behavior).
2019-07-16 11:02:25 +02:00
Tyler Benson 747f758a70 Remove default instance
It’s not very interesting and breaks the definition of “instance” when we want to see the db name when no instance name is defined.
2019-07-15 12:52:57 -07:00
Nikolay Martynov 1fbe395586 Avoid Jetty 10 in servlet-3 test
Alpha version of Jetty 10 was released and it seems to be compiled for
java versions above 8 so tests fail on java8.

Limit latest dep Jetty tests to Jetty 9 for now.
2019-07-15 10:15:21 -04:00
Nikolay Martynov 3191eb7058 Avoid Jetty 10
Alpha version of Jetty 10 was released and it seems to be compiled for
java versions above 8 so tests fail on java8.

Limit latest dep Jetty tests to Jetty 9 for now.
2019-07-15 10:15:16 -04:00
Luca Abbati 5b3d4b8e35
Merge pull request #905 from DataDog/labbati/jmx-as-daemon
Run JmxFetch app as a daemon
2019-07-15 08:18:09 -04:00
Tyler Benson ec931463a4
Merge pull request #885 from DataDog/tyler/instance-name-testing
Additional testing for split-by-instance config
2019-07-15 01:27:49 -04:00
Laplie Anderson 0eab4688cd Remove unnecessary semicolons 2019-07-12 16:36:02 -04:00
Nikolay Martynov 6516bd7ad7 Minor comment update 2019-07-12 16:26:39 -04:00
Laplie Anderson 8a7336a017 Use 1.19.0 as first supported version 2019-07-12 16:06:19 -04:00
Laplie Anderson 82ee01cadf Implement instrumentation for async requests 2019-07-12 15:41:14 -04:00
Nikolay Martynov f4aa8be7c5 Make kafka streams test more stable 2019-07-11 11:07:17 -04:00
Nikolay Martynov 3ecc7c123d Wait for traces in kafka streams tests 2019-07-11 10:51:55 -04:00
Nikolay Martynov 765b76b0ae Fix kafka-streaming tests broken by records(TopicPartition) instrumentation 2019-07-11 10:31:18 -04:00
Nikolay Martynov 3e8b65290a Instrument records(TopicPartition) in kafka consumer 2019-07-11 10:30:44 -04:00
Nikolay Martynov 142477ed0a Merge branch 'master' into mar-kolya/kafka-trace-records 2019-07-10 18:15:51 -04:00
Tyler Benson a13e4a0229
Merge pull request #910 from DataDog/labbati/jersey-1.19
Extend support for Jersey client  to 1.9+
2019-07-10 15:02:11 -06:00
Tyler Benson 4501dbe920
Merge pull request #899 from dpratt/fix-akka-http
Fix akka-http instrumentation.
2019-07-10 14:39:47 -06:00
Tyler Benson 5624cef4af fix check 2019-07-10 14:08:50 -06:00
Tyler Benson 4486c3a6ff Change jax-rs-client project names to match versions 2019-07-10 13:25:48 -06:00
Tyler Benson 5526fd0ca3 Jersey client 1.9 cleanup 2019-07-10 13:11:09 -06:00
Nikolay Martynov f484295460 Kafka instrumentation: make return type more general in instrumentation matching 2019-07-10 13:47:20 -04:00
Luca Abbati c16a0844d8
Enable tracing of jax-rs client in sun package 2019-07-10 13:05:12 -04:00
Luca Abbati 3ab63e7005
Some refactoring in tests 2019-07-10 08:43:31 -04:00
Luca Abbati 0f5dd2413c
Add tests for Jersey V1 client 2019-07-09 22:49:44 -04:00
Luca Abbati b62266fd52
First draft of jersey 1.19 client instrumentation 2019-07-09 21:13:00 -04:00
Laplie Anderson caa7e4426a Passing tests. Modify escaping of spaces in urls 2019-07-09 17:17:41 -04:00
Laplie Anderson d97b1c2d53 Fix package 2019-07-09 17:17:41 -04:00
Laplie Anderson 30916ac5d7 Implementation 2019-07-09 17:17:41 -04:00
Laplie Anderson f53b14bd0f Stub google http client integration 2019-07-09 17:17:41 -04:00
Luca Abbati 2e41e94774
Update jmxfetch to version 0.30.0 2019-07-08 14:43:29 -04:00
Nikolay Martynov 058c4ec567 Trace 'records(TopicPartitions)` in kafka consumer 2019-07-08 11:19:17 -04:00
Luca Abbati 2027027e46
Explitely run JmxFetch app as a daemon 2019-07-03 15:24:51 +02:00
Nikolay Martynov ffe4aabf8f Specify version of hibernate-annotation
Using '+' pushes version of hibernate-core up as well and we do not
want thay.
2019-07-02 10:41:55 -04:00
Nikolay Martynov 94b2e91c3a Fix hibernate DTD urls
Looks like old urls redirect to https with broken cert now
2019-07-02 10:41:32 -04:00
Luca Abbati 58da60ac4e
Fix typo in comment 2019-06-25 00:33:18 +02:00
David Pratt 681420a004 Remove SuperPool instrumentation.
By definition, a Flow generated by a SuperPool does not respect ordering
of requests and responses, and in fact will typically only rarely actually
behave in the fashion that the instrumentation expects. The previous implementation
would start a span for a given request before submitting it as input to the flow,
and close the span with whatever response is next emitted by the flow. This
request will rarely (if ever) be the actual response for the request that
started the span. For more info, see the official docs at
https://doc.akka.io/docs/akka-http/current/client-side/host-level.html#configuring-a-host-connection-pool

Additionally, compiling this instumentation against scala 2.11, and only
scala 2.11 can (and does) cause significant problems at runtime due to the
fact that Scala is explicitly not binary compatible across major versions.
2019-06-24 11:01:48 -05:00
Luca Abbati 8022d0e170
Remove redundant .class suffixes in groovy test files 2019-06-24 17:18:05 +02:00
Luca Abbati d58c252085
Add tests for netty channel handlers added through channel initializers 2019-06-24 16:27:50 +02:00
Luca Abbati 27e0e4492e
Calculate depth per handler class in netty channel pipeline instrumentation 2019-06-24 16:27:50 +02:00
Luca Abbati f01d473d10
Merge pull request #894 from DataDog/labbati/log4j
Support log trace injection for log4j 1.x and log4j 2.x when used without Slf4j
2019-06-21 16:36:26 -04:00
Luca Abbati 8ee6d26d15
Rename log4j 1 and 2 instrumentation to log4j1 and log4j2 respectively 2019-06-21 15:56:27 -04:00
Luca Abbati f279a612f7
Minor fixes to typos and code styles 2019-06-21 15:53:13 -04:00
Luca Abbati ac7abcdfa8
Fix expression to include tracing of log4j1 MDC in agent installer 2019-06-21 15:52:20 -04:00
Laplie Anderson 2e66aea741 Fix formatting issue 2019-06-21 15:52:01 -04:00
David Pratt bf7bbf31f8 Fix akka-http instrumentation.
Remove compiled Scala artifacts from the actual instrumentation. Scala
is not binary compatible across major versions, and having
AkkaHttpClientTransformFlow.scala be in the artifact causes problems
when using anything but Scala 2.11.

Having the AkkaHttpClientTransformFlow implementation be in pure java
utilizing the Akka-stream Java DSL ensures that this will work across
any given Scala major version.
2019-06-21 14:51:04 -05:00
Laplie Anderson ad822d81f9 Fix imports to match project style
* imports in groovy and the ordering of lombok was incorrect
2019-06-21 14:19:45 -04:00
Laplie Anderson d80406843f Add "http.query.string" and "http.fragment.string" to DDTags 2019-06-21 14:05:34 -04:00
Luca Abbati d0f17e4b9d
Rename log context injection test base 2019-06-21 08:54:13 -04:00
Luca Abbati 0916a00a5e
Fixed unnecessary semi-colon in groovy class 2019-06-20 21:42:50 -04:00
Luca Abbati 27b4db8861
Remove legacy transitive dependencies no longer bundled with the JVM from muzzle tests 2019-06-20 21:29:46 -04:00
Luca Abbati cba8ba1221
Refactor classes of log injection services to improve readability 2019-06-20 18:38:00 -04:00
Luca Abbati b7393df473
Remove jms functionality brought in by log4j1.X dependency 2019-06-20 18:23:40 -04:00
Luca Abbati 4d1d5d1012
Introduce the mandatory test suite that a supported logging library MUST satisfy for log injection 2019-06-20 18:15:19 -04:00
Luca Abbati c2bd5eefa0
Remove method that was copied and pasted from slf4j instrumentation but seems not to be relevant here 2019-06-20 17:55:43 -04:00
Luca Abbati ecdf6664ef
Refactor log4jX instrumentations 2019-06-20 17:36:10 -04:00
Luca Abbati 34d589e536
Create a reusable log context listener to be used for slf4j, log4j1 and log4j2 2019-06-20 17:07:28 -04:00
Luca Abbati dcf0f57030
Add support for log4j 1.x 2019-06-20 16:08:49 -04:00
Luca Abbati 8d562f91fd
Rename log4j package removing the left-over from sl4j original class 2019-06-19 12:35:22 -04:00
Luca Abbati d9eb480f3c
Rename log4j2 module to reflect library name 2019-06-19 12:35:22 -04:00
Luca Abbati 22477efb7a
Add basic support for log4j ThreadContext for log injection. 2019-06-19 12:34:39 -04:00
Nikolay Martynov a9a623d1dc Configure system logger to log timestamp
Also add an 'identifying marker' to tracing log lines so we could
potentially automatically parse them.
2019-06-17 12:56:19 -04:00
Tyler Benson 2c240754fc Additional testing for split-by-instance config
Some DB’s don’t define an instance, so verify the setting has no effect for them.
2019-06-14 10:08:17 -07:00
Tyler Benson e8246f6b97
Merge pull request #881 from DataDog/tyler/instance-name
Add `dd.trace.db.client.split-by-instance` Config
2019-06-14 08:40:52 -07:00
Tyler Benson 3ce3c7c8c5
Merge pull request #882 from DataDog/tyler/cassandra-testing
Update Cassandra Tests and more instance name cleanup
2019-06-14 08:02:21 -07:00
Tyler Benson a4d53b0dcd Update Cassandra Tests and more instance name cleanup 2019-06-13 15:55:40 -07:00
Tyler Benson 4c5793bddf Add `dd.trace.db.client.split-by-instance` Config 2019-06-13 15:52:37 -07:00
Tyler Benson 7e2f85d674 Fix latest test 2019-06-13 14:54:41 -07:00
Tyler Benson 3be6868981 Update Mongo instance name and remove memcache instance name
For mongo, use description if set, fallback to db name.

Memcache doesn’t have a good “instance name” that would work as service name, so clear it out for now.
2019-06-13 12:35:16 -07:00
Tyler Benson 75b626a84d fix tests 2019-06-13 10:59:36 -07:00
Tyler Benson 25305444d4 Set minimum version and fix var name. 2019-06-13 10:44:42 -07:00
Tyler Benson d26edd6c17 Ensure gradle runs base mongo test first
Otherwise there is a race condition between the projects initializing the mongo instance.
2019-06-13 10:44:42 -07:00
Tyler Benson d6719ed5cd Replace Mongo tests with updated tests. 2019-06-13 10:44:42 -07:00
Nikolay Martynov b112043ea3
Merge pull request #876 from DataDog/mar-kolya/make-akka-test-more-stable
Make Akka client test more stable
2019-06-13 13:23:59 -04:00
Luca Abbati 075b30053d
Merge pull request #863 from DataDog/labbati/non-static-config
Avoid usage of static getters when accessing configuration parameters
2019-06-13 18:06:15 +02:00
Nikolay Martynov f5f3386f79 Make Akka client test more stable
We already have a hack to wait for client span to close after the
request because it is closed on separate thread. This patch extends
that hack to handle cases when original request throws an exception.
2019-06-13 11:51:10 -04:00
Tyler Benson ec3b586c2f
Merge pull request #866 from DataDog/tyler/jdbc-instance
Attempt to properly parse out instance name from JDBC url
2019-06-13 08:15:02 -07:00
Luca Abbati bd1e9a01db
Fixed missing blank line 2019-06-13 14:34:27 +02:00
Luca Abbati a8dd35ef57
Improve AgentRunner and ConfigUtils class based on CR comments 2019-06-13 12:40:10 +02:00
Luca Abbati a522196b49
Merge branch 'master' of github.com:DataDog/dd-trace-java into labbati/non-static-config 2019-06-12 23:57:20 +02:00
Luca Abbati e1ceda8f0e
Improve config usage as instance based on CR 2019-06-12 14:00:36 +02:00
Nikolay Martynov 6d5972bce1 Make agent-tooling compile-depend on dd-tracing-ot directly
This ensures that `dd-tracng-ot` gets included into shadow jar.
Before this patch it was included only 'by accident' via some
transitive dependencies of some instrumentations.
2019-06-11 14:49:44 -04:00
Tyler Benson 3c68c09101 Review fixes. 2019-06-11 11:12:50 -07:00
Tyler Benson 1a5a70650c Fix SpringJpaTest 2019-06-10 17:18:58 -07:00
Tyler Benson 4469c7fb11 separate out driver subtype
to avoid changing existing service names
2019-06-10 16:17:36 -07:00
Tyler Benson 288add2a60 Fix slickdb test 2019-06-10 15:20:56 -07:00
Tyler Benson 0807598d16 Populate settings from properties and add MariaDB alt styles 2019-06-10 12:02:14 -07:00
Nikolay Martynov 8fa14ad33e Remove DDJavaAgentInfo - it doesn't seem to be used 2019-06-07 22:56:32 -04:00
Nikolay Martynov 78d014cf91 Fix DDInfoTest
This test was not marked as `Specification` and therefor was not run
during builds. Some time ago some code got moved around and this test
got broken - so fixing it.
2019-06-07 22:56:32 -04:00
Nikolay Martynov f172d59051 fix typo 2019-06-07 22:56:32 -04:00
Nikolay Martynov dd4b4c38f3 Refactor smoketests setup
Move start/stop of servers in smoke tests from gradle code to test
code.
This gives more flexibility in terms of what we can do there.
This also allows us to run servers under test with same JVM as the
test itself - not same jvm as gradle which is currently locked to Java8
2019-06-07 22:56:28 -04:00
Tyler Benson ec60d679d6 Add Oracle support and fix muzzle. 2019-06-06 18:03:56 -07:00
Nikolay Martynov 822efd5df5 Skip couchbase 2.7.5 version in muzzle
This should make muzzle test pass. 2.7.5 was broken during its release.
2019-06-06 17:50:58 -04:00
Nikolay Martynov 0851dc4826 Undo Couchbase gradle hack
Looks like 2.7.5 has now fully propagated through the mirrors so we
can revert hack that made things compile.
2019-06-06 17:44:59 -04:00
Luca Abbati 1dc8467c26
Merge branch 'master' of github.com:DataDog/dd-trace-java into labbati/non-static-config 2019-06-06 18:11:43 +02:00
Nikolay Martynov 69a780a940
Merge pull request #867 from DataDog/mar-kolya/undo-akka-latest-dep-hack
Undo akka latest dep hack
2019-06-06 11:04:15 -04:00
Nikolay Martynov eddf5d98d8 Undo akka latest dep hack 2019-06-06 10:05:18 -04:00
Nikolay Martynov 7863a68a53 Fix typo 2019-06-06 09:41:36 -04:00
Tyler Benson 6100443443 Attempt to properly parse out instance name from JDBC url
Unfortunately implementations are INCREDIBLY inconsistent on the matter.  Oracle implementation is still pending since it’s really complicated.
2019-06-05 18:01:33 -07:00
Luca Abbati b6572bfd55
Reset test tracer in TraceAnnotationsTest to pick new configs 2019-06-05 18:52:25 +02:00
Luca Abbati 057ca7b66e
Refresh the tracer with changed config properties now that we are using instances 2019-06-05 15:38:00 +02:00
Luca Abbati ae03abe63c
Adapt tests to the new Config approach instance vs static 2019-06-05 12:17:09 +02:00
Luca Abbati 8debe771d4
Fix tests after changing config from static to instance access 2019-06-05 10:56:20 +02:00
Luca Abbati 901efee50e
Remove static usage of low level config methods from outside the config class 2019-06-04 15:13:40 +02:00
Tyler Benson 8016e22bc4 Review changes 2019-05-31 09:07:22 -07:00
Tyler Benson 9cdf049ca7 Extract ConfigUtils 2019-05-30 09:09:29 -07:00
Tyler Benson a7c941c2ea More fixes.
Notably added a transformer to make config easier to test with by making INSTANCE public static volatile.
2019-05-29 22:24:19 -07:00
Tyler Benson fc9f1d120c Misc fixes. 2019-05-29 13:54:35 -07:00
Tyler Benson 71101ac8d0 Add http.query.string tag when enabled
Disabled by default.

Enable for http servers with:
* System Property: `dd.http.server.tag.query-string=true`
* Environment Variable: `DD_HTTP_SERVER_TAG_QUERY_STRING=true`

Enable for http clients with:
* System Property: `dd.http.client.tag.query-string=true`
* Environment Variable: `DD_HTTP_CLIENT_TAG_QUERY_STRING=true`
2019-05-29 13:54:35 -07:00
Tyler Benson e260b1d044 Make all http client tests extend HttpClientTest
Add flexibility to handle inconsistencies between client integrations.
2019-05-29 13:54:35 -07:00
Tyler Benson 8c860d63a4 Revert Pull Request #854 and #855
These are breaking changes that need more vetting.
2019-05-29 12:18:31 -07:00
Luca Abbati eb032d1c8e
Adding muzzle tests for glassfish 3 and 5 2019-05-29 17:53:42 +02:00
Luca Abbati 19c0b21332
Remove useless tests from Glassfish 4 instrumentation 2019-05-29 17:24:51 +02:00
Luca Abbati 37b734dd50
Some more attempts to UT glassfish classloader 2019-05-28 19:39:11 +02:00
Luca Abbati f62e1dedeb
Add unit tests for glassfish 4.1 instrumentation 2019-05-28 15:06:43 +02:00
Luca Abbati 470a20dbce
Fix code formatting 2019-05-28 13:56:37 +02:00
Luca Abbati 5292b598d8
Remove log from GlassfishAdvice as log is not available 2019-05-27 16:20:46 +02:00
Luca Abbati 9d2523a58a
Reformat code 2019-05-27 15:50:47 +02:00
Luca Abbati 13cf53827d
Merge branch 'master' of github.com:DataDog/dd-trace-java into labbati/jdbc-error-glasshfish 2019-05-27 15:18:18 +02:00
Luca Abbati 0c52ba58c4
Move glassfish 4 compatibility layer to instrumentation module 2019-05-27 15:17:04 +02:00
Tyler Benson 0ea2d74744
Merge pull request #857 from DataDog/tyler/misc
Fix log message and add ignores
2019-05-24 14:23:01 -07:00
Nikolay Martynov 70fa97f8c2 Move code to make java7 happy 2019-05-24 16:55:39 -04:00
Nikolay Martynov ef94e2fb79 Add note about Kafka consumer iterator thread safety 2019-05-24 16:37:27 -04:00
Nikolay Martynov a3a325868c Add some rudimetrary tests for CompletableFuture 2019-05-24 16:36:07 -04:00
Nikolay Martynov 0b85f048d1 Handle Scope in Kafka producer properly
Holding onto scope in `Callback` is bad because that code may run on
different thread.
2019-05-24 16:27:28 -04:00
Tyler Benson 21c22d6985 Fix log message and add ignores
Also add CODEOWNERS
2019-05-24 11:44:10 -07:00
Luca Abbati a3a98ceac8
Merge pull request #856 from DataDog/labbati/set-spring-controller-async
Make spring controller spans to handle async
2019-05-24 18:47:35 +02:00
Luca Abbati 25e06b4965
Make spring controller spans to handle async 2019-05-24 17:42:06 +02:00
Tyler Benson 4f3c527074
Merge pull request #838 from DataDog/tyler/jmx-fetch
Enable JMXFetch by default and add configs for more standard custom metrics
2019-05-24 08:41:14 -07:00
Nikolay Martynov 82f1a485d5
Merge pull request #855 from DataDog/mar-kolya/rabbitmq-client-service-name
Use default service name for RabbitMQ consumer
2019-05-24 10:51:28 -04:00
Nikolay Martynov a7271ed2b2 Use default service name for RabbitMQ consumer
So spans parented by consumer span had reasonable service name
2019-05-24 09:06:22 -04:00
Luca Abbati fcbe7c9869
Fix code format 2019-05-24 12:13:54 +02:00
Tyler Benson 91cdef1a35 Reduce logging to avoid risk of deadlocks.
dd-jmx-collector
Stack Trace is:
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@10.0.1/Native Method)
- parking to wait for <0x00000007a9ce5448> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
at java.util.concurrent.locks.LockSupport.park(java.base@10.0.1/LockSupport.java:194)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(java.base@10.0.1/AbstractQueuedSynchronizer.java:883)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(java.base@10.0.1/AbstractQueuedSynchronizer.java:915)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@10.0.1/AbstractQueuedSynchronizer.java:1238)
at java.util.concurrent.locks.ReentrantLock.lock(java.base@10.0.1/ReentrantLock.java:267)
at org.gradle.internal.remote.internal.hub.MessageHub$ChannelDispatch.dispatch(MessageHub.java:361)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
at com.sun.proxy.$Proxy11.sendOutputEvent(Unknown Source)
at org.gradle.process.internal.worker.child.WorkerLogEventListener.onOutput(WorkerLogEventListener.java:36)
at jdk.internal.reflect.GeneratedMethodAccessor17.invoke(Unknown Source)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@10.0.1/DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(java.base@10.0.1/Method.java:564)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:42)
at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:230)
at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:149)
at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:140)
at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
at com.sun.proxy.$Proxy10.onOutput(Unknown Source)
at org.gradle.internal.logging.sink.OutputEventTransformer.onOutput(OutputEventTransformer.java:104)
at org.gradle.internal.logging.sink.OutputEventRenderer.onOutput(OutputEventRenderer.java:420)
- locked <0x00000007aa223fc0> (a java.lang.Object)
at org.gradle.internal.logging.sink.OutputEventListenerManager$1.onOutput(OutputEventListenerManager.java:36)
at org.gradle.internal.logging.services.TextStreamOutputEventListener.onTextEvent(TextStreamOutputEventListener.java:57)
at org.gradle.internal.logging.services.TextStreamOutputEventListener.onOutput(TextStreamOutputEventListener.java:41)
at org.gradle.internal.logging.source.PrintStreamLoggingSystem$OutputEventDestination.onOutput(PrintStreamLoggingSystem.java:167)
at org.gradle.internal.logging.source.PrintStreamLoggingSystem$1.text(PrintStreamLoggingSystem.java:44)
at org.gradle.internal.io.LineBufferingOutputStream.flush(LineBufferingOutputStream.java:95)
at org.gradle.internal.io.LineBufferingOutputStream.write(LineBufferingOutputStream.java:80)
at java.io.OutputStream.write(java.base@10.0.1/OutputStream.java:113)
at java.io.PrintStream.write(java.base@10.0.1/PrintStream.java:559)
- locked <0x00000007afd031a0> (a java.io.PrintStream)
at sun.nio.cs.StreamEncoder.writeBytes(java.base@10.0.1/StreamEncoder.java:233)
at sun.nio.cs.StreamEncoder.implFlushBuffer(java.base@10.0.1/StreamEncoder.java:312)
at sun.nio.cs.StreamEncoder.flushBuffer(java.base@10.0.1/StreamEncoder.java:104)
- locked <0x00000007afd03ac0> (a java.io.OutputStreamWriter)
at java.io.OutputStreamWriter.flushBuffer(java.base@10.0.1/OutputStreamWriter.java:184)
at java.io.PrintStream.newLine(java.base@10.0.1/PrintStream.java:625)
- locked <0x00000007afd031a0> (a java.io.PrintStream)
at java.io.PrintStream.println(java.base@10.0.1/PrintStream.java:883)
- locked <0x00000007afd031a0> (a java.io.PrintStream)
at org.gradle.internal.io.LinePerThreadBufferingOutputStream.println(LinePerThreadBufferingOutputStream.java:203)
at datadog.slf4j.impl.SimpleLogger.write(SimpleLogger.java:318)
at datadog.slf4j.impl.SimpleLogger.log(SimpleLogger.java:295)
at datadog.slf4j.impl.SimpleLogger.info(SimpleLogger.java:480)
at org.datadog.jmxfetch.reporter.ConsoleReporter.doSendServiceCheck(ConsoleReporter.java:52)
at org.datadog.jmxfetch.reporter.Reporter.sendServiceCheck(Reporter.java:166)
at org.datadog.jmxfetch.App.sendServiceCheck(App.java:767)
at org.datadog.jmxfetch.App.processCollectionStatus(App.java:1161)
at org.datadog.jmxfetch.App.doIteration(App.java:491)
at org.datadog.jmxfetch.App.start(App.java:424)
at org.datadog.jmxfetch.App.run(App.java:219)
at datadog.trace.agent.jmxfetch.JMXFetch$1.run(JMXFetch.java:99)
at java.lang.Thread.run(java.base@10.0.1/Thread.java:844)

main
Stack Trace is:
java.lang.Thread.State: BLOCKED (on object monitor)
at org.gradle.internal.logging.sink.OutputEventRenderer.onOutput(OutputEventRenderer.java:420)
- waiting to lock <0x00000007aa223fc0> (a java.lang.Object)
at org.gradle.internal.logging.sink.OutputEventListenerManager$1.onOutput(OutputEventListenerManager.java:36)
at org.gradle.internal.logging.services.TextStreamOutputEventListener.onTextEvent(TextStreamOutputEventListener.java:57)
at org.gradle.internal.logging.services.TextStreamOutputEventListener.onOutput(TextStreamOutputEventListener.java:41)
at org.gradle.internal.logging.source.PrintStreamLoggingSystem$OutputEventDestination.onOutput(PrintStreamLoggingSystem.java:167)
at org.gradle.internal.logging.source.PrintStreamLoggingSystem$1.text(PrintStreamLoggingSystem.java:44)
at org.gradle.internal.io.LineBufferingOutputStream.flush(LineBufferingOutputStream.java:95)
at org.gradle.internal.io.LineBufferingOutputStream.write(LineBufferingOutputStream.java:80)
at java.io.OutputStream.write(java.base@10.0.1/OutputStream.java:113)
at java.io.PrintStream.write(java.base@10.0.1/PrintStream.java:559)
- locked <0x00000007a9c6b060> (a java.io.PrintStream)
at sun.nio.cs.StreamEncoder.writeBytes(java.base@10.0.1/StreamEncoder.java:233)
at sun.nio.cs.StreamEncoder.implFlushBuffer(java.base@10.0.1/StreamEncoder.java:312)
at sun.nio.cs.StreamEncoder.flushBuffer(java.base@10.0.1/StreamEncoder.java:104)
- locked <0x00000007a9c6b990> (a java.io.OutputStreamWriter)
at java.io.OutputStreamWriter.flushBuffer(java.base@10.0.1/OutputStreamWriter.java:184)
at java.io.PrintStream.newLine(java.base@10.0.1/PrintStream.java:625)
- locked <0x00000007a9c6b060> (a java.io.PrintStream)
at java.io.PrintStream.println(java.base@10.0.1/PrintStream.java:883)
- locked <0x00000007a9c6b060> (a java.io.PrintStream)
at org.gradle.internal.io.LinePerThreadBufferingOutputStream.println(LinePerThreadBufferingOutputStream.java:203)
at datadog.slf4j.impl.SimpleLogger.write(SimpleLogger.java:318)
at datadog.slf4j.impl.SimpleLogger.log(SimpleLogger.java:295)
at datadog.slf4j.impl.SimpleLogger.formatAndLog(SimpleLogger.java:355)
at datadog.slf4j.impl.SimpleLogger.debug(SimpleLogger.java:446)
at datadog.trace.agent.tooling.context.FieldBackedProvider$1$1$1.visitMethodInsn(FieldBackedProvider.java:202)
at net.bytebuddy.jar.asm.MethodVisitor.visitMethodInsn(MethodVisitor.java:427)
at net.bytebuddy.utility.visitor.ExceptionTableSensitiveMethodVisitor.onVisitMethodInsn(ExceptionTableSensitiveMethodVisitor.java:180)
at net.bytebuddy.utility.visitor.ExceptionTableSensitiveMethodVisitor.visitMethodInsn(ExceptionTableSensitiveMethodVisitor.java:167)
at net.bytebuddy.jar.asm.MethodVisitor.visitMethodInsn(MethodVisitor.java:427)
at net.bytebuddy.utility.visitor.StackAwareMethodVisitor.visitMethodInsn(StackAwareMethodVisitor.java:302)
at net.bytebuddy.jar.asm.MethodVisitor.visitMethodInsn(MethodVisitor.java:427)
at net.bytebuddy.jar.asm.MethodVisitor.visitMethodInsn(MethodVisitor.java:427)
at net.bytebuddy.jar.asm.ClassReader.readCode(ClassReader.java:2214)
at net.bytebuddy.jar.asm.ClassReader.readMethod(ClassReader.java:1283)
at net.bytebuddy.jar.asm.ClassReader.accept(ClassReader.java:688)
at net.bytebuddy.jar.asm.ClassReader.accept(ClassReader.java:400)
at net.bytebuddy.asm.Advice$Dispatcher$Inlining$Resolved$AdviceMethodInliner.apply(Advice.java:7379)
at net.bytebuddy.asm.Advice$AdviceVisitor.onAfterExceptionTable(Advice.java:9427)
at net.bytebuddy.utility.visitor.ExceptionTableSensitiveMethodVisitor.considerEndOfExceptionTable(ExceptionTableSensitiveMethodVisitor.java:49)
at net.bytebuddy.utility.visitor.ExceptionTableSensitiveMethodVisitor.visitLabel(ExceptionTableSensitiveMethodVisitor.java:62)
at net.bytebuddy.jar.asm.Label.accept(Label.java:357)
at net.bytebuddy.jar.asm.ClassReader.readCode(ClassReader.java:1823)
at net.bytebuddy.jar.asm.ClassReader.readMethod(ClassReader.java:1283)
at net.bytebuddy.jar.asm.ClassReader.accept(ClassReader.java:688)
at net.bytebuddy.jar.asm.ClassReader.accept(ClassReader.java:400)
at net.bytebuddy.dynamic.scaffold.TypeWriter$Default$ForInlining.create(TypeWriter.java:3393)
at net.bytebuddy.dynamic.scaffold.TypeWriter$Default.make(TypeWriter.java:1930)
at net.bytebuddy.dynamic.scaffold.inline.RedefinitionDynamicTypeBuilder.make(RedefinitionDynamicTypeBuilder.java:217)
at net.bytebuddy.agent.builder.AgentBuilder$Default$Transformation$Simple$Resolution.apply(AgentBuilder.java:10132)
at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.doTransform(AgentBuilder.java:10551)
at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.transform(AgentBuilder.java:10514)
at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.access$1500(AgentBuilder.java:10280)
at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer$Java9CapableVmDispatcher.run(AgentBuilder.java:10964)
at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer$Java9CapableVmDispatcher.run(AgentBuilder.java:10902)
at java.security.AccessController.doPrivileged(java.base@10.0.1/Native Method)
at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.transform(AgentBuilder.java:10470)
at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer$ByteBuddy$ModuleSupport.transform(Unknown Source)
at sun.instrument.TransformerManager.transform(java.instrument@10.0.1/TransformerManager.java:188)
at sun.instrument.InstrumentationImpl.transform(java.instrument@10.0.1/InstrumentationImpl.java:560)
at java.lang.ClassLoader.defineClass1(java.base@10.0.1/Native Method)
at java.lang.ClassLoader.defineClass(java.base@10.0.1/ClassLoader.java:1009)
at java.security.SecureClassLoader.defineClass(java.base@10.0.1/SecureClassLoader.java:174)
at java.net.URLClassLoader.defineClass(java.base@10.0.1/URLClassLoader.java:545)
at java.net.URLClassLoader.access$100(java.base@10.0.1/URLClassLoader.java:83)
at java.net.URLClassLoader$1.run(java.base@10.0.1/URLClassLoader.java:453)
at java.net.URLClassLoader$1.run(java.base@10.0.1/URLClassLoader.java:447)
at java.security.AccessController.doPrivileged(java.base@10.0.1/Native Method)
at java.net.URLClassLoader.findClass(java.base@10.0.1/URLClassLoader.java:446)
at java.lang.ClassLoader.loadClass(java.base@10.0.1/ClassLoader.java:566)
- locked <0x00000007afb4bc50> (a java.lang.Object)
at java.lang.ClassLoader.loadClass(java.base@10.0.1/ClassLoader.java:499)
at org.gradle.internal.remote.internal.hub.MessageHub.addHandler(MessageHub.java:131)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection.addIncoming(MessageHubBackedObjectConnection.java:98)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.startReceivingTests(TestWorker.java:104)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:68)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:46)
at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:93)
at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:36)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:125)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:68)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:62)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:67)
2019-05-23 17:59:54 -07:00
Nikolay Martynov 80a5cc6025 Set kafka client service name to application default service name.
So that spans inheriting from that client span have application
service name rather than 'kafka'
2019-05-23 20:21:03 -04:00
Tyler Benson fd43210e07 Add task timeout for tests. 2019-05-23 17:13:40 -07:00
Tyler Benson 4d01f52b67 Change JMXFetch config keys
`agent.conf.d` -> `jmxfetch.config.dir`
`jmxfetch.configs` -> `jmxfetch.config`

Enabling bundled JMXFetch configs:
`dd.integration.<integration>.enabled=true` -> `dd.jmxfetch.<integration>.enabled=true`
2019-05-23 15:00:46 -07:00
Tyler Benson 5f8e186dcb Fix task inputs/outputs. 2019-05-22 16:00:20 -07:00
Tyler Benson b505c60543 Use jmx AppConfig Builder instead of factory method
Expose new options for configuring JMXFetch with standard datadog-agent config files with `jvm_direct: true` set as an instance attribute (this will be ignored by the datadog-agent).

For Example:
* `dd.agent.conf.d=/opt/datadog-agent/etc/conf.d`
* `dd.jmxfetch.configs=activemq.d/conf.yaml,jmx.d/conf.yaml`
will load jmx configs in those two files that have `jvm_direct: true` in their `instance` setup.

Environment variables can also be used: `DD_AGENT_CONF_D` and `DD_JMXFETCH_CONFIGS`

Depends on https://github.com/DataDog/jmxfetch/releases/tag/0.29.0 being released.
2019-05-21 17:13:56 -07:00
Tyler Benson 204b7cdd4c Update Integrations Core to 6.11.2 2019-05-21 08:33:09 -07:00
Luca Abbati 19d9880d9d
Add tests for Utils.getStackTraceAsString() 2019-05-20 16:44:14 +02:00
Luca Abbati 5cf6fc969d
Improve docblocks of glassfish compatibility layer 2019-05-20 16:44:14 +02:00
Luca Abbati 5f68507eb4
In galssfish, prevent blacklisting of specific classes and dump stack trace in debug mode 2019-05-20 16:44:14 +02:00
Nikolay Martynov c5dbd7d0d7 Fix ApacheHttpAsync race condition 2019-05-17 13:49:46 -04:00
Nikolay Martynov 47e6216e6b
Merge pull request #842 from DataDog/mar-kolya/limit-couchbase-latest-dep-version
Do not try to build against couchbase 2.7.5 since it didn't sync up w…
2019-05-17 13:14:34 -04:00
Nikolay Martynov 48f951cee7
Merge pull request #841 from DataDog/mar-kolya/ignore-flaky-test
Wait for span to finish in apache-http-aync test
2019-05-17 13:13:38 -04:00
Tyler Benson d900289ae0 Try again… 2019-05-17 10:01:37 -07:00
Nikolay Martynov e52c654fd1 Wait for span to finish instead of ignoring test 2019-05-17 12:55:34 -04:00
Tyler Benson b6ba1997ae Add constraint for muzzle too 2019-05-17 09:32:15 -07:00
Nikolay Martynov 6287e552fc
Merge pull request #836 from DataDog/mar-kolya/do-not-send-headers-to-old-kafka
Do not send headers to old kafka servers
2019-05-17 11:55:52 -04:00
Nikolay Martynov d01832a94d Do not try to build against couchbase 2.7.5 since it didn't sync up with mirrors yet 2019-05-17 11:27:35 -04:00
Nikolay Martynov c02110a2a1 Add comment explaining Kafka versions limitations check 2019-05-17 11:22:02 -04:00
Nikolay Martynov 387f094617 Ignore flaky apache-http-aync test 2019-05-17 11:19:24 -04:00
Nikolay Martynov 94907270a2
Merge pull request #837 from DataDog/mar-kolya/fix-apache-async-instrumentation-with-null-callback
Handle null callback in HttpAsyncApache instrumentation
2019-05-16 17:41:39 -04:00
Nikolay Martynov b736ca3108 Handle null callback in HttpAsyncApache instrumentation 2019-05-16 17:26:08 -04:00
Nikolay Martynov 55d7c2a6f5 Do not send headers to old kafka servers
Kafka message bundles with versions below 2 (e.d. 0.10) do not support
headers so do not inject them. Otherwise client gets really upset.

This is how similar check is being done in Kafka client itself:
05fcfde8f6/clients/src/main/java/org/apache/kafka/common/record/MemoryRecordsBuilder.java (L411-L412)
2019-05-16 15:09:58 -04:00
Tyler Benson 354d17ac7d
Merge pull request #830 from DataDog/tyler/executor-config
Add config to enable individual executors
2019-05-16 10:05:29 -07:00
Tyler Benson 3bbf9f27eb Fix resource name for Ratpack
Previous fallback would inadvertently include query parameters in the resource name.
2019-05-15 16:30:51 -07:00
Tyler Benson cc23fee614 Add config to enable individual executors
Or all executors, bypassing the allow list.

`dd.trace.executor=com.MyCustomExecutor,com.OtherExecutor`
`dd.trace.executors.all=true`

Turns out in many cases, executors that we say we’re skipping, are still being traced because they extend from an already instrumented executor.
2019-05-14 10:03:44 -07:00
Nikolay Martynov ba02250cf6 Clarify log messages when tracing is disabled 2019-05-09 16:12:35 -04:00
Nikolay Martynov 5ff04bd1e9 Allow tracing be disabled via config 2019-05-09 10:20:06 -04:00
Nikolay Martynov 2984cc506e Limit okhttp latest deps test to 3.x.x 2019-05-09 10:17:35 -04:00
Nikolay Martynov c0bb6f4a36 Fix minor typo 2019-05-09 09:44:42 -04:00
Tyler Benson 376451c031 Fix instrumentation names for apache httpasyncclient 2019-05-03 09:58:05 -07:00
Tyler Benson 745fc70b58
Merge pull request #816 from DataDog/tyler/make-field-transient
Add transient modifier to added context fields.
2019-05-03 08:34:19 -07:00
Tyler Benson 579b6dd929 Add transient modifier to added context fields. 2019-05-02 15:52:43 -07:00
Tyler Benson 4b1fcdea04 Remove latest dep test for transport-5 2019-05-02 14:44:31 -07:00
Tyler Benson 0a234872e9 Try limiting latest to 5.1.x 2019-05-02 14:04:07 -07:00
Tyler Benson 8a38b6fc1e Skip ES tests in CI. 2019-05-02 12:26:39 -07:00
Tyler Benson 82f50e22b7
Merge pull request #811 from DataDog/tyler/hystrixobservable
Add support for HystrixObservableCommand
2019-05-02 09:47:09 -07:00
Tyler Benson 793627c167 Fix tests 2019-04-30 15:55:12 -07:00
Tyler Benson c8743fce64 Remove potentially dangerous recursive call. 2019-04-30 14:53:15 -07:00
Tyler Benson ac734ac6ee More classloading issues with Glassfish
Glassfish’s WebappClassLoader caches when a resource or class load fails, so we can’t load as a resource first to see if it is available.

Also add additional logging.
2019-04-30 12:38:54 -07:00
Tyler Benson 2c5ae9f3b1 Make OSGi instrumentation more generic
This should help it work with felix.

Also reduce log noise.
2019-04-30 12:38:54 -07:00
Tyler Benson c971c434d1 Fix propagation and add onUnsubscribe handler
Ensures that span is closed when Observable is unsubscribed from.

Also added retransform error logger since retransforms might be missed if an exception is thrown, leading to odd behavior.
2019-04-30 11:52:20 -07:00
Tyler Benson f74fd347c2
Merge pull request #814 from raphw/frames-fixed
Fixes #813: Only add frames if class file version supports attribute
2019-04-30 11:13:53 -07:00
Tyler Benson 1b38fcc8b4 Apply formatting 2019-04-30 10:08:58 -07:00
Rafael Winterhalter eeaa27af83 Fixes #813: Only add frames if class file version supports attribute 2019-04-30 10:22:27 +02:00
Tyler Benson 54287fa548 Add comment and consistency. 2019-04-29 12:21:05 -07:00
Tyler Benson 6414de82d9 Add support for HystrixObservableCommand
This change is slightly breaking for existing hystrixCommand code since the resource name changes from run->execute and getFallback->fallback.  The fallback span is also now a child of the execute span.
2019-04-29 12:04:27 -07:00
Tyler Benson 25d109753d
Merge pull request #809 from DataDog/tyler/httpasyncclient
Add instrumentation for Apache HttpAsyncClient
2019-04-29 08:14:11 -07:00
Tyler Benson 68a68f1057 Ensure that http.url tag doesn’t have query params set
Make handling of it more consistent in decorator.
2019-04-26 09:48:34 -07:00
Tyler Benson 20df3aa18e Add HttpAsyncClient to Elasticsearch for verification. 2019-04-25 17:27:06 -07:00
Tyler Benson 179b9b69cb Upgrade Byte Buddy to 1.9.12
and a few other minor code changes.
2019-04-25 10:36:35 -07:00
Tyler Benson 9ad06a6791 Add instrumentation for Apache HttpAsyncClient
Extract http client tests to shared class.
2019-04-23 17:10:40 -07:00
Tyler Benson 4c79f38a4d A couple other minor changes… 2019-04-19 10:41:13 -07:00
Tyler Benson ec91a75848 Add config allowing classes to be excluded from transformation
Add the following system property or corresponding environment variable:
```
dd.trace.classes.exclude=some.packagename.*,some.classname.MyClass$NestedClass
```
2019-04-19 10:41:13 -07:00
Tyler Benson 746c423199
Merge pull request #775 from darylrobbins/twilio
Twilio SDK Instrumentation
2019-04-19 09:18:40 -07:00
Tyler Benson 2acaeb3dfb Revert minor changes. 2019-04-17 16:23:15 -07:00
Tyler Benson e74941a4d5 Merge branch 'master' into twilio 2019-04-16 17:44:36 -07:00
Tyler Benson b9207133d6 Split async and sync advice and misc cleanup. 2019-04-16 13:56:44 -07:00
Daryl Robbins 315ae67fd2 Merge branch 'twilio' of github.com:darylrobbins/dd-trace-java into twilio
* 'twilio' of github.com:darylrobbins/dd-trace-java:
  Updates to handle async calls, which have broken all tests
  Missed Gradle file
  WIP Twilio SDK Instrumentation

# Conflicts:
#	dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioClientDecorator.java
#	dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioInstrumentation.java
#	dd-java-agent/instrumentation/twilio/src/test/groovy/test/TwilioClientTest.groovy

Merge branch 'twilio' of github.com:darylrobbins/dd-trace-java into twilio
Improved unit testing

* 'twilio' of github.com:darylrobbins/dd-trace-java:
  Updates to handle async calls, which have broken all tests
  Missed Gradle file
  WIP Twilio SDK Instrumentation

# Conflicts:
#	dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioClientDecorator.java
#	dd-java-agent/instrumentation/twilio/src/main/java/datadog/trace/instrumentation/twilio/TwilioInstrumentation.java
#	dd-java-agent/instrumentation/twilio/src/test/groovy/test/TwilioClientTest.groovy

Fix sleep times and choose Java7-friendly test dependencies

Corrected test assertion
2019-04-16 13:56:44 -07:00
Daryl Robbins 13aa267d84 WIP Twilio SDK Instrumentation
Missed Gradle file

Updates to handle async calls, which have broken all tests
2019-04-16 13:56:44 -07:00
Daryl Robbins e3d97b0984 WIP Twilio SDK Instrumentation
Missed Gradle file

Updates to handle async calls, which have broken all tests

Fixed instrumentation and augmented tests
2019-04-16 13:46:43 -07:00
Tyler Benson 0315c976af Fixes for ratpack. 2019-04-16 13:29:26 -07:00
Tyler Benson b343fe4551 Split peer connection details different generic argument 2019-04-16 08:34:43 -07:00
Tyler Benson bf05984208 Server tags should report peer, not self hostname/port
Previously this was not obvious and incorrect.
2019-04-16 08:21:01 -07:00
Tyler Benson dc2e435de9
Merge pull request #797 from DataDog/tyler/ratpack
Update ratpack instrumentation and remove default disabled.
2019-04-16 08:14:10 -07:00
Luca Abbati f4a17ba4c5
Remove tests that relied on inner knowledge of the class. Feature still tested with cglib test. 2019-04-12 17:12:50 +02:00
Luca Abbati ff021f34db
Add minor fixes to comments and typos as per code reviewer suggestions 2019-04-12 16:51:49 +02:00
Luca Abbati c6863f0ca3
Use groovy class reference style in Spock tests 2019-04-11 16:06:46 +02:00
Luca Abbati e8435b165d
Fixed typo in comment 2019-04-11 15:49:10 +02:00
Luca Abbati 3a6fedda14
Add context getter/setter methods to an object only if not already defined
Class `FieldBackedProvider` uses ByteBuddy to add a field and its respective getters and setters to store the context object.
Assuming that we have a class `A` that implements runnable and that we wrap with a `FieldBackedProvider`
`Runnable` interfaces, if later on we use a cglib's `Enancher` class on `A` then the our mechanism will kick in again and try
to add the methods again. This causes a `java.lang.ClassFormatError: Duplicate method name "get__datadogContext$java$lang$Runnable" with signature "()Ljava.lang.Object;"`
to be thrown because CGLIB already copied over those methods from the original class `A` to the newly created class.

With this commit we now check that method were not previously defined before adding them, and if they were then we avoid adding them
again.

The reason why it wasn't faiing before is that we only checked on context field existence, not methods and cglib do not copy over fields, it copies only methods. E.g.

```
public class Main {

    public static class A {
        private String name = "hey";
        public String getName() {
            return this.name;
        }
    }

    public static void main(String[] args) {
        System.out.println("----- 'A' declared fields -----");
        A s = new A();
        for (Field f : s.getClass().getDeclaredFields()) {
            System.out.println("field: " + f.getName());
        }
        for (Method m : s.getClass().getDeclaredMethods()) {
            System.out.println("method: " + m.getName());
        }

        System.out.println("----- Proxy declared fields -----");
        Enhancer enhancer = new Enhancer();
        enhancer.setSuperclass(A.class);
        enhancer.setCallback((FixedValue) () -> null);
        A proxy = (A) enhancer.create();
        for (Field f : proxy.getClass().getDeclaredFields()) {
            System.out.println("field: " + f.getName());
        }
        for (Method m : proxy.getClass().getDeclaredMethods()) {
            System.out.println("method: " + m.getName());
        }
    }
}
```

Results in:

```
----- 'A' declared fields -----
field: name
method: getName
----- Proxy declared fields -----
field: CGLIB$BOUND
field: CGLIB$FACTORY_DATA
field: CGLIB$THREAD_CALLBACKS
field: CGLIB$STATIC_CALLBACKS
field: CGLIB$CALLBACK_0
field: CGLIB$CALLBACK_FILTER
method: equals
method: toString
method: hashCode
method: clone
method: getName
method: newInstance
method: newInstance
method: newInstance
method: setCallbacks
method: CGLIB$SET_STATIC_CALLBACKS
method: CGLIB$SET_THREAD_CALLBACKS
method: getCallback
method: getCallbacks
method: CGLIB$STATICHOOK1
method: CGLIB$BIND_CALLBACKS
method: setCallback
```
2019-04-11 15:45:43 +02:00
Tyler Benson c4ac5b94ec Fix span relationships and other review issues. 2019-04-10 17:31:22 -07:00
Nikolay Martynov e41769232e Fix AWS instrumentation warning in Idea
Idea complains about duplicates root because we run latest dep tests
and 'later version' tests from the same dir. This is ultimately
TestSetd plugin bug by the looks of it, but we can work around it by
swapping old and new version tests.

Also run both old and new version tests under 'test' task.
2019-04-09 10:50:07 -04:00
Tyler Benson a11b888d7a Update ratpack instrumentation and remove default disabled. 2019-04-08 18:26:08 -07:00
Tyler Benson 229e8ef51b Fix JMXFetch log level 2019-04-08 09:48:49 -07:00
Nikolay Martynov 6fd630831f Stop using `scopeManager().activate(span, true)` 2019-04-08 11:54:47 -04:00
Nikolay Martynov f4791a17df Use decorators in Netty's ChannelFutureListenerInstrumentation 2019-04-08 11:35:13 -04:00
Nikolay Martynov 7b53cebd3d Fix some compiler warnings 2019-04-05 12:58:54 -04:00
Nikolay Martynov a5b5d236e1 Use Scope when opening span in netty instrumentation 2019-04-05 11:13:53 -04:00
Nikolay Martynov e678a62e5b Use scope when opening JMS span 2019-04-05 11:13:53 -04:00
Nikolay Martynov 4119059e70 Jaxrs: use scope when span is opened 2019-04-05 11:13:53 -04:00
Nikolay Martynov 0e7418fde6 AWS v2: use scope when span is created 2019-04-05 11:13:53 -04:00
Nikolay Martynov 480a14b170 OkHttp: rearrange scope code a bit 2019-04-05 11:13:53 -04:00
Nikolay Martynov 1af7487201 Wrap Rabbitmq channel span into scope 2019-04-05 11:13:53 -04:00
Nikolay Martynov 743ab327b0 Wrap GRPC span start into scope 2019-04-05 11:13:53 -04:00
Nikolay Martynov a1e23dfb86 Make sure span is opened and closed with scope in Cassandra 2019-04-05 11:13:53 -04:00
Nikolay Martynov bddee3d6e2 Make sure span is opened and closed with scope in Mongo 2019-04-05 11:13:53 -04:00
Nikolay Martynov f3e1eb4f5d Make sure span is opened and closed with scope in Couchbase 2019-04-05 11:13:53 -04:00
Nikolay Martynov 2bba4c5591 Make sure span is opened and closed with scope in spymemcached 2019-04-05 11:13:53 -04:00
Nikolay Martynov bfb48f31c1 Make sure span is opened and closed with scope in http_url_connection 2019-04-05 11:13:53 -04:00
Nikolay Martynov 997832ba4e Limit hibernate integration tests to 5.x.x since we do not support 6+ 2019-04-05 10:43:16 -04:00
Nikolay Martynov 93621fac17 Specify hibernate latest dep test deps for 4.0 tests 2019-04-05 09:26:14 -04:00
Nikolay Martynov c104be1fa7 Add compile dep on scala to make Idea happy 2019-04-03 13:59:25 -04:00
Nikolay Martynov e3488d23a2 Netty: do not use deprecated constants 2019-04-03 13:58:54 -04:00
Nikolay Martynov a245ec4949 Upgradle gradle 2019-04-03 12:56:15 -04:00
Nikolay Martynov de980c2d52
Merge pull request #787 from DataDog/mar-kolya/compiler-config-fix
Mar kolya/compiler config fix
2019-04-01 09:15:39 -04:00
Nikolay Martynov 212d4d3c71 Provide Java compiler with bootstrap classes for Java7
when compiling Java7-compatible sources.
2019-03-29 13:53:53 -04:00
Luca Abbati 2c282552dc
Fix comment 2019-03-29 17:26:43 +01:00
Luca Abbati ff17ed166b
Fix code style in cassandra integration 2019-03-29 16:38:32 +01:00
Luca Abbati dfecfc8329
Fixed typo in comments (follow-up) 2019-03-29 14:15:25 +01:00
Luca Abbati 1e69fb7234
Have cassandra integration to work with recent versions of Guava.
Recent versions of Guava removed method 'Futures::transform(input, function)' in favor of 'Futures::transform(input, function, executor)'.
This commit manually retrieve the executor as it was done in Guava 20 in the overloaded method.
See: 65f6b4f4b1/guava/src/com/google/common/util/concurrent/AbstractTransformFuture.java (L58)
2019-03-29 13:42:46 +01:00
Nikolay Martynov 3b0e769e88 Fix helper injection in context provider
Currently helpers will not be injected if instrumentation doesn't
apply. Unfortunately it is possible for some classes to have context
fields added even if instrumentation is not allied (i.g. instrumented
classes are not used). Fix this by always injecting all helpers if we
inject context fields.
2019-03-26 15:53:34 -04:00
Tyler Benson 004c44d70c Add tests confirming that Spring Data Repos aren’t working
The hibernate instrumentation doesn’t seem to work with Spring Data JPA.
2019-03-25 11:58:16 -07:00
Tyler Benson a73b8c36f0 Review changes. 2019-03-25 09:56:05 -07:00
Tyler Benson 26a0194b84 Prevent instrumentation’s Context from applying if Muzzle fails
This can cause problems if muzzle prevents an integration from loading because the class for the new field being added may not be injected.  This results in an error:

```
Caused by: java.lang.NoClassDefFoundError: datadog/trace/bootstrap/instrumentation/context/FieldBackedProvider$ContextAccessor$org$hibernate$Session$datadog$trace$bootstrap$instrumentation$hibernate$SessionState
```
2019-03-25 08:19:44 -07:00
Tyler Benson 63b5c094e7 Fix NPE in hibernate instrumentation
Also add each hibernate instrumentation project as a test dependency to the others.  This demonstrates a problem with muzzle and instrumentation context which currently causes the tests to fail.
2019-03-22 17:06:19 -07:00
Tyler Benson b22b11b9b0 Add timeout test for V2
Also make sure span is closed on error.
2019-03-21 18:08:35 -07:00
Tyler Benson 8d96729ae8 Fix instrumentation and add tests to verify. 2019-03-21 18:08:35 -07:00
Nikolay Martynov 3a3705f708 AWS v0: Close span non AWS SDK errors
Looks like AWS SDK doesn't call interceptor when non-sdk exception
occurs. This leads to leaking open spans. Fix that by instrumenting
http client.

Note: currently has no tests.
2019-03-21 18:08:35 -07:00
Tyler Benson e0d95ceb19 Fix cassandra supported version
and limit range check to <4.
The latest release (4.0) is not compatible with our instrumentation.
2019-03-21 17:57:08 -07:00
Will Gittoes c363f64b50
Merge pull request #773 from DataDog/willgittoes-dd/hibernate-fix
Improve selectivity of Hibernate instrumentation application
2019-03-22 10:08:26 +11:00
Will Gittoes af0f37861b
Support Hibernate 3.3 2019-03-21 13:38:16 +11:00
Tyler Benson 07463e04bd
Merge pull request #772 from DataDog/tyler/status-error-mapping
Implement Http Status error mapping via config
2019-03-20 19:14:17 -07:00
Will Gittoes c369fafe8c
Support muzzle testInverse = true 2019-03-21 12:17:24 +11:00
Tyler Benson e5e2c5b9dc
Merge pull request #710 from DataDog/tyler/size-limited-flushes
Change DDAgentWriter to use Disruptor
2019-03-20 11:03:56 -07:00
Will Gittoes f94f22bcba
Dont load hibernate instrumentation unless correct version of hibernate is on the classpath 2019-03-20 15:52:49 +11:00
Tyler Benson 715af67e70 Implement Http Status error mapping via config
Using the following defaults:

* `DD_HTTP_CLIENT_ERROR_STATUSES=400-499`
* `DD_HTTP_SERVER_ERROR_STATUSES=500-599`
2019-03-19 17:11:48 -07:00
Will Gittoes 8c5158f8e9
Restructure hibernate integration 2019-03-20 11:00:42 +11:00
Tyler Benson 7ffcf5ad4d Change DDAgentWriter to use Disruptor
Serialize payloads as they arrive, send to agent when size exceeds 5MB.

If a flood of traces fills up the RingBuffer, we still count the traces that are discarded for stats reporting.

Do we want to allow configuration of the RingBuffer size?
2019-03-19 09:44:23 -07:00
Will Gittoes 4825a113f8
Add a couple of comments about the code structure 2019-03-19 16:28:27 +11:00
Will Gittoes b60c3bcc0a
Decouple common utils used in hibernate tracing from any specific version of hibernate 2019-03-19 14:40:16 +11:00
Will Gittoes 86d14280d2
Exclude hibernate-annotations from 3.5 latestDepTest 2019-03-19 09:56:39 +11:00
Will Gittoes 3b6c688ce8
Support Hibernate 3.5 2019-03-19 09:56:39 +11:00
Will Gittoes 5a04c58c55
Merge pull request #765 from DataDog/willgittoes-dd/hibernate-5
Add support for Hibernate 4.3+ ProcedureCall
2019-03-19 09:56:03 +11:00
Nikolay Martynov 63e0c0f032 Support Unix Domain Socket proxy to send traces 2019-03-15 11:36:44 -07:00
Tyler Benson 071c16a839
Merge pull request #768 from DataDog/tyler/metrics-double
Agent doesn’t like getting floats.
2019-03-15 07:55:25 -07:00
Tyler Benson 472262149c Apply timeout and retry to test
This test seems to hang a lot in java 7.
2019-03-14 15:44:32 -07:00
Tyler Benson 192eb894a4 Fix Trace Search + Analytics integration config key 2019-03-14 10:54:43 -07:00
Will Gittoes 30401bfed8
Fix test 2019-03-13 14:20:58 +11:00