Commit Graph

3775 Commits

Author SHA1 Message Date
Tyler Benson c13cb2e60f Move a few other classes. 2020-02-24 08:35:19 -08:00
Tyler Benson 3559ffb21c Add unit tests for matchers 2020-02-24 08:35:19 -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
Nikolay Martynov 833f67816e
Merge pull request #1248 from DataDog/mar-kolya/reduce-superclass-matcher-exposure
Avoid calling superclass matcher where possible
2020-02-21 21:16:52 -05:00
Tyler Benson b27b30d913
Merge pull request #1247 from DataDog/tyler/bb-raw
Set ByteBuddy raw setting at startup
2020-02-21 16:30:24 -08:00
Nikolay Martynov b6d374e3a0 Avoid calling superclass matcher where possible
Saves about 100ms of startup time on test app
2020-02-21 15:08:39 -05:00
Tyler Benson ecf9bcc655
Make sure CallDepthThreadLocalMap is always reset (#1227)
Make sure CallDepthThreadLocalMap is always reset
2020-02-21 11:03:51 -08:00
Tyler Benson faccb0d483 Set ByteBuddy raw setting at startup
This reduces the complexity of TypeDefinitions.
```
Benchmark                                                             Mode  Cnt   Score   Error  Units
ClassRetransformingBenchmark.WithAgent.testTracedRetransform          avgt       22.450          ms/op
ClassRetransformingBenchmark.WithAgent.testUntracedRetransform        avgt        6.842          ms/op
ClassRetransformingBenchmark.WithAgentMaster.testTracedRetransform    avgt       23.188          ms/op
ClassRetransformingBenchmark.WithAgentMaster.testUntracedRetransform  avgt        7.009          ms/op
```
It also improved startup time by about 1 sec.
2020-02-21 10:35:20 -08:00
Nikolay Martynov 1f8acafc42
Merge pull request #1245 from DataDog/mar-kolya/single-ignores-matcher
Single ignores matcher
2020-02-21 12:42:18 -05:00
Tyler Benson e4d29e37ef
Update JMH benchmarks (#1242)
Update JMH benchmarks
2020-02-21 09:38:34 -08:00
Nikolay Martynov 27842d8479 Ignore cglib packaged with springboot 2020-02-21 11:56:45 -05:00
Nikolay Martynov 0c659770cc Collect all ignore matchers into one
This should allow us to optimize this as a single function later
2020-02-21 11:48:40 -05:00
Nikolay Martynov b1d314aff1 Specify types in jaxrs mtcher to help Idea with type inference 2020-02-21 11:34:25 -05:00
Nikolay Martynov e92d326052
Merge pull request #1236 from DataDog/mar-kolya/determine-agent-url-on-first-call
Determine agent URL version on first upload call
2020-02-21 07:04:49 -05:00
Lev Priima 51ca429915
Merge pull request #1235 from DataDog/lpriima/SkipClassLoaderMatcher#shouldSkipClass_by_switch
string-switch in SkipClassLoaderMatcher#shouldSkipClass(ClassLoader)
2020-02-20 21:20:06 -08:00
Lev Priima 52e0eb9d37 SkipClassLoaderMatcher use str-switch in shouldSkipClass(ClassLoader) 2020-02-20 21:02:42 -08:00
Tyler Benson 352469afde
Tomcat 10.0.0-M1 release seems to have some issues (#1243)
Tomcat 10.0.0-M1 release seems to have some issues
2020-02-20 20:51:05 -08:00
Tyler Benson a4f34f4088 Latest tomcat release seems to have some issues
Instrumentation muzzled: [jsp, jsp-compile] -- datadog.trace.instrumentation.jsp.JasperJSPCompilationContextInstrumentation on jdk.internal.loader.ClassLoaders$AppClassLoader@2c13da15
-- datadog.trace.instrumentation.jsp.JSPDecorator:39 Missing method getServletContext#()Ljavax/servlet/ServletContext;
2020-02-20 20:35:25 -08:00
Tyler Benson 5e37ca02f1
Merge pull request #1240 from DataDog/tyler/executor-matcher-reorder
Reorder java-concurrent matchers
2020-02-20 17:54:39 -08:00
Tyler Benson 660921517c
Remove costly matchers from ignore list (#1233)
Remove costly matchers from ignore list
2020-02-20 17:52:43 -08:00
Tyler Benson e1964e526e Update JMH benchmarks
Benchmark is run with `./gradlew :dd-java-agent:benchmark:jmh` -- after updating the absolute paths to the various agents in `ClassRetransformingBenchmark`.  Unfortunately I was unable to have it launch correctly with a relative path.
2020-02-20 17:30:36 -08:00
Trask Stalnaker 8949d6c05f Make sure CallDepthThreadLocalMap is always reset 2020-02-20 16:53:57 -08:00
Tyler Benson b805bf5994
Cache the result of toString in BigInteger (#1228)
Cache the result of toString in BigInteger
2020-02-20 16:10:31 -08:00
Tyler Benson da4f1dbc99
Merge pull request #1239 from DataDog/mar-kolya/change-profiling-url
Change profiling intake url
2020-02-20 16:08:38 -08:00
Heather D'Souza c0baa48487
Merge pull request #1231 from DataDog/heather.dsouza/disable_log_listeners
Create AgentBuilder with logging listeners only if in debug mode
2020-02-20 17:07:17 -05:00
heathkd b7b46caaa8 create AgentBuilder instance with logging listeners only if debug mode is enabled 2020-02-20 16:29:27 -05:00
Anubhaw Arya 17b4fae39c Ignores for coverage 2020-02-20 12:00:28 -08:00
Tyler Benson b80e9857d2 Reorder java-concurrent matchers
Move the expensive matcher to last.

In theory this should help, but did not seem to make a significant difference in basic startup benchmarks.
2020-02-20 11:34:39 -08:00
Tyler Benson e4a454549d
Split interface and class "supertype matching" (#1232)
Split interface and class "supertype matching"
2020-02-20 11:08:39 -08:00
Nikolay Martynov a43f2b7db6 Change profiling intake url 2020-02-20 12:58:39 -05:00
Nikolay Martynov 2c14aecd5a Create http client laizily 2020-02-20 10:11:25 -05:00
Nikolay Martynov a4071ca768 Fix some typos in tests 2020-02-20 10:07:53 -05:00
Nikolay Martynov 27cb2111b6
Merge pull request #1237 from DataDog/mar-kolya/do-not-create-field-profider-for-all-intrsumentations
Avoid creating context provider for intrumentations that do not need …
2020-02-20 09:51:45 -05:00
Nikolay Martynov cddd368fc0 Fix integration test 2020-02-20 09:26:33 -05:00
Nikolay Martynov c8bbce0549 Fix more tests 2020-02-20 08:48:48 -05:00
Nikolay Martynov 102c0feb5d Merge branch 'master' into mar-kolya/determine-agent-url-on-first-call 2020-02-20 08:33:55 -05:00
Nikolay Martynov f4d8b6b1f2 Avoid creating context provider for intrumentations that do not need that
This should reduce number of allocations
2020-02-20 08:28:25 -05:00
Nikolay Martynov f0a11d4aff Make sure traceUrl is null before detecting agent url 2020-02-20 08:18:54 -05:00
Nikolay Martynov e044567617 Fix test 2020-02-20 08:06:13 -05:00
Nikolay Martynov 8209a8830c Determine agent URL version on first upload call
This should remove http request from critical path during app load
2020-02-20 07:20:08 -05:00
Laplie Anderson 43487fcfb5 Fix the logic 2020-02-19 21:22:17 -05:00
Laplie Anderson 92b9c07018 Add interfaces only code 2020-02-19 21:22:17 -05:00
Laplie Anderson 147b4a64f1 Add matcher for only concrete classes 2020-02-19 21:22:17 -05:00
Laplie Anderson d45ead1284 split matching into safeExtendsClass and safeHasInterface 2020-02-19 21:22:17 -05:00
Tyler Benson 6e4b55304e Add special handling for ignoring `javax.decorator.Decorator` annotated classes. 2020-02-19 16:24:23 -08:00
Tyler Benson 88aa31b63e Remove costly matchers from ignore list
Removing these matchers caused the time spent matching ignores to go from greater than 1 second to less than 100 ms.
2020-02-19 16:24:23 -08:00
Tyler Benson 40f44c318c
Fix test to match new constructors. (#1234)
Fix test to match new constructors.
2020-02-19 16:22:59 -08:00
Tyler Benson 461270f1c7 Fix test to match new constructors. 2020-02-19 15:47:48 -08:00
Nikolay Martynov d49c08691e
Merge pull request #1229 from DataDog/mar-kolya/fix-jaxrs-matching
Fix JaxRs matching
2020-02-19 07:01:21 -05:00