Commit Graph

71 Commits

Author SHA1 Message Date
Tyler Benson 97efa307d3 Stop setting error tag and update tests. 2020-04-13 13:59:11 -04:00
Laplie Anderson 6411ee358f Remove Http*Decorators from method signatures in tests 2020-03-12 13:13:17 -04:00
Laplie Anderson 6cd530a541 Move decorators to bootstrap 2020-03-11 18:41:29 -04:00
Laplie Anderson 4dce8776e1 Add traceId/spanId as request attributes 2020-03-09 16:15:40 -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 372ba221d2 Invert the classloader matcher to remove the double negative. 2020-03-05 10:14:33 -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
Laplie Anderson d45ead1284 split matching into safeExtendsClass and safeHasInterface 2020-02-19 21:22:17 -05:00
Nikolay Martynov a04cc15ce8 Fix some tests 2020-02-14 12:59:30 -05:00
Nikolay Martynov fd75575796 Disable peer hostname tag for http servers
Getting peer hostname makes DNS request
2020-02-14 11:25:07 -05:00
Tyler Benson 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
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
Tyler Benson 10b0f35235
Merge pull request #1090 from DataDog/tyler/servlet-path
Add servlet.path tag
2019-11-22 09:18:14 -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 fdf2241e5f Add servlet.path tag 2019-11-11 15:54:21 -08:00
Laplie Anderson bf4587c23d Missed a few test helper methods 2019-11-04 12:49:35 -05:00
Trask Stalnaker e32bf1816a Organize imports 2019-10-24 21:05:01 -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 a8ca47ed03 Skip spring controller and dropwizard trace if no trace present
Also prefer early return instead of deep nesting for null check.
2019-10-24 14:40:08 -07:00
Trask Stalnaker b3a86085cb Update jetty-8 to new agent api 2019-10-19 16:52:41 -07:00
Tyler Benson 09ad2374cf Disable Grizzly instrumentation by default
Otherwise it can interfere with the more common Servlet instrumentation (changing the root span name).

Unify attribute/property name for saving span on a request/context.
Also add tests for embedded GlassFish.
2019-08-27 13:27:57 -04: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 95a294a560 Remove common (redundant) dependencies 2019-08-06 14:51:04 -07: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
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 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 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 5668e6006f Migrate Jetty instrumentation to Decorator 2019-02-28 13:54:37 -08:00
Tyler Benson 50279d64fe Span type should only be an attribute and not inherited
Previously we were inheriting from the parent and also often setting as a tag.

Apply default span assertion to verify the spanType is being checked properly. (Include error state too.)
2019-02-28 12:39:51 -08:00
Tyler Benson bbcd2f6949 Move other Utils to utils package 2019-02-05 11:43:05 -08:00
Nikolay Martynov 4ba0adfab3 Catch exception in servlet context getter.
Request may finish after check has been perform but before context has
been read leading to exception in some implementations.
2019-01-25 12:28:58 -05:00
Tyler Benson fe52180bfc Apply proper generic signature for Instrumenter.Default transformers()
Previously it was missing the MethodDescription portion.
2019-01-04 15:25:12 -08:00
Nikolay Martynov 118a61cc67 Add field backed context provider 2018-11-29 15:18:46 -08:00
Nikolay Martynov a70da1d995 Remove redundant tests from SparkJava
Tests that create traces and do not assert on them may leave traces
behind for the next test causing errors.
2018-11-20 17:26:29 -05:00
Nikolay Martynov 228e7e0d21 Better handle Jetty async calls
Do same thing we do for servlets
2018-11-19 14:17:01 -05:00
Tyler Benson 1064e35788 Apply standard tag name and update spring-web test deps version. 2018-11-16 08:06:40 -08:00
Tyler Benson 51dfd2b184 Fix latestDepTests for Jetty 2018-11-12 11:05:02 -08:00
Tyler Benson 9bd2b86d2e Add assertion to ensure latestDepTest dependencies are different from test. 2018-11-12 08:15:24 -08:00
Nikolay Martynov 34372533c1 Add config for tags that propagate to JMXFetch and spans
Also add runtime-id tag to root span and JMXFetch metrics
2018-10-22 15:51:20 -04:00
Tyler Benson 432ce89a07 Add assertTraces to AgentTestRunner with implied argument
This will also help with auto complete when writing tests.
2018-10-15 10:19:00 +10:00
Gary Huang a8f52d8c52
Muzzle Jetty Instrumentation
Add muzzle block and remove class loader matcher method.
2018-09-07 17:24:11 -04:00
Tyler Benson 0b289205f8 Add fixme to adapter. 2018-08-17 10:53:12 +10:00
Tyler Benson 63746907e4 Add TestHttpServer 2018-08-16 14:23:58 +10:00