Commit Graph

95 Commits

Author SHA1 Message Date
Brian Devins-Suresh de4b6d7733
Merge pull request #1320 from DataDog/tyler/http-client-testing
Add tests for http clients
2020-03-25 16:08:26 -04:00
Nikolay Martynov e5caa48364 Add netty server logging in tests 2020-03-24 15:16:09 -04:00
Brian Devins-Suresh 5aa1800bec Get rid of half baked map methods. Close parentScope in a finally block (+forward port) 2020-03-23 14:44:11 -04:00
Lev Priima a5a5743f7c
WeakCache instead of WeakMap (#1256)
WeakCache abstraction in addition to WeakMap
2020-03-20 00:23:07 -07:00
Tyler Benson 25464456d3 Add tests for http clients
- dropped request
- non-routable request
- https request

Unfortunately I wasn't able to figure out a clean way to test some of these scenarios without making a remote request.
I was also not able to configure everything consistently, so I had to disable that test for several integrations.
2020-03-13 15:05:16 -07:00
Anubhaw Arya 0344cff386 Remove hostname and port from HttpClientDecorator 2020-03-13 10:47:10 -07: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
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
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 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
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
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 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
Trask Stalnaker 8949d6c05f Make sure CallDepthThreadLocalMap is always reset 2020-02-20 16:53:57 -08:00
Laplie Anderson d45ead1284 split matching into safeExtendsClass and safeHasInterface 2020-02-19 21:22:17 -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 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
Laplie Anderson a0b1cd4a75 WeakMap computeIfAbsent 2020-01-15 12:26:15 -05:00
Tyler Benson 99992df998 Fix tagging query string for additional servers
Add test to common test suite and adapt each test.
2019-12-17 09:33:27 -08:00
Trask Stalnaker 1987e86ebf Normalize tag verification order 2019-11-22 10:59:45 -08:00
dougqh 6b096c2240 Replacing Advice.class references
Replacing Advice.class references with string construction.

This stops the JVM from loading the Advice classes which are used as templates for byte buddy and doesn't ever need to be run directly.

This eliminates ~130 class loads at start-up -- and saves 0.5MiB in metaspace
2019-11-18 16:09:30 -05:00
Tyler Benson 607dd553d4 Attempt to remove span-ordering race condition with NettyClientTest 2019-10-28 09:50:56 -07:00
Trask Stalnaker 86bd9793bd Switch to new Tags class in instrumetation 2019-10-24 21:05:00 -07:00
Trask Stalnaker 9182b64078 Switch to new Tags class in tests 2019-10-24 21:04:57 -07:00
Tyler Benson fbd16d8cb7 Add assert to ensure muzzle range not empty and update spring-data
Also fix a few muzzle definitions that are now broken with the new requirement.

Moved a few projects around to match correct version numbers.
2019-10-23 14:09:01 -07:00
Trask Stalnaker 8bb0f2c2f0 Use header objects directly where possible 2019-10-21 18:21:01 -07:00
Trask Stalnaker 6a7bafe389 Update netty-4.1 to new agent api 2019-10-19 16:52:41 -07:00
Laplie Anderson d5021e0cbc Add test case with netty 2019-10-08 13:43:26 +02:00
Tyler Benson 8c490a42a2 Improve Ratpack context propagation and migrate tests 2019-08-16 09:17:50 -07:00
Tyler Benson 49249c0c6e Move server field to HttpServerTest 2019-08-07 08:35:18 -07:00
Tyler Benson 668b1059f5 Migrate vertx tests to HttpServerTest 2019-08-05 15:52:04 -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
Tyler Benson 6f229305bb Review fixes 2019-08-02 10:01:03 -07: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
Tyler Benson 9681b91f3e Fix test. Format. 2019-07-29 15:27:26 -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
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 c1ec277944 Base HttpServerTest and updated Netty test 2019-07-24 15:54:07 -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
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 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
Luca Abbati 58da60ac4e
Fix typo in comment 2019-06-25 00:33:18 +02: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
Tyler Benson a4d53b0dcd Update Cassandra Tests and more instance name cleanup 2019-06-13 15:55:40 -07:00