Nikolay Martynov
89be6b5c06
Ignore majority of google api
...
And several other google libraries
2020-03-03 11:45:22 -05:00
Nikolay Martynov
d029713740
Ignore org json simple
2020-03-03 11:45:22 -05:00
Nikolay Martynov
78268d1f0f
Fix logback
2020-03-03 11:45:22 -05:00
Nikolay Martynov
8cdde847f9
Ignore mustachejava
2020-03-03 11:45:22 -05:00
Nikolay Martynov
d74d65175b
Ignore majority of cassandra classes
2020-03-03 11:45:22 -05:00
Nikolay Martynov
22e7fe8f82
Add exception for instrumented runnable in logback
2020-03-03 11:45:22 -05:00
Nikolay Martynov
52e6f42f03
Codehale metrics provides servlets that we instrument
2020-03-03 11:45:22 -05:00
Nikolay Martynov
bcec89895e
Ignore couchbase packaged deps
2020-03-03 11:45:22 -05:00
Nikolay Martynov
4960e0630d
Ignore carrotsearch.hppc and codahale.metrics
2020-03-03 11:45:22 -05:00
Nikolay Martynov
9d76281ddf
Ignore jcommander
2020-03-03 11:45:22 -05:00
Nikolay Martynov
646bf5bb05
Ignore logback
2020-03-03 11:45:22 -05:00
Nikolay Martynov
e92ad38cc8
Tighten up aws instrumentation matcher a bit
2020-03-03 11:45:22 -05:00
Nikolay Martynov
31a4c9a427
Ignore kotlin runtime
2020-03-03 11:45:22 -05:00
Nikolay Martynov
a59ab43efc
Ignore org.objectweb.asm.
2020-03-03 11:45:22 -05:00
Nikolay Martynov
dad9e72af7
Ignore more groovy classes
2020-03-03 11:45:22 -05:00
Nikolay Martynov
dedfc7dd0b
Make ignired classes test assertion more informative
2020-03-03 11:45:22 -05:00
Nikolay Martynov
fc5e2cc747
Ignore apache xml tools
2020-03-03 11:45:22 -05:00
Nikolay Martynov
fe9cf09249
Ignore jackson and cglib
2020-03-03 11:45:22 -05:00
Nikolay Martynov
73abe16c26
Add a comment
2020-03-03 07:29:22 -05:00
jean-philippe bempel
14dd0f1147
Update JMXFetch to 0.35
...
Includes many improvements regarding memory footprint and allocations
2020-03-03 08:49:51 +01:00
Nikolay Martynov
e22ce02762
Add test for ignore matchers for libraries
2020-03-02 16:37:39 -05:00
Nikolay Martynov
a1a3957ca8
Rename variable
2020-03-02 16:37:39 -05:00
Nikolay Martynov
5b4c7f8c92
Merge pull request #1273 from DataDog/mar-kolya/profile-force-early
...
Add an option to force profiling right in the beginning of premain
2020-03-02 22:18:05 +01:00
Nikolay Martynov
d46a3be123
Reduce log verbocity
2020-03-02 15:26:04 -05:00
Nikolay Martynov
b73bf22f2d
Merge pull request #1279 from DataDog/mar-kolya/make-profiling-test-more-resilient
...
Make profiling controller test more resilient to delays
2020-03-02 19:43:02 +01:00
Tyler Benson
f0e59edb5e
Merge pull request #1274 from DataDog/tyler/matcher-hashcode-equals
...
Add proper hashcode/equals methods to our matchers
2020-03-02 10:37:51 -08:00
Nikolay Martynov
6ff723e191
CR changes
2020-03-02 12:25:20 -05:00
Nikolay Martynov
2eb7aa7d20
Increase CleanerTest timeout to help IBM JVM to cope
2020-03-02 12:11:11 -05:00
Nikolay Martynov
ba55f0ed10
Make profiling controller test more resilient to delays
2020-03-02 11:48:21 -05:00
Tyler Benson
abd115cff5
Merge pull request #1275 from trask/fix-class-loading-instrumentation
...
Fix class loading instrumentation
2020-03-02 08:17:24 -08:00
Nikolay Martynov
a1f6ca1ee7
Make lz4 default compression
...
Also do some renaming in compression settings
2020-03-02 10:12:47 -05:00
Nikolay Martynov
b3d81281f6
Merge branch 'master' into mar-kolya/profiling-lz4
2020-03-02 10:02:09 -05:00
Trask Stalnaker
0984ac2a61
Fix class loading instrumentation
2020-02-29 15:28:50 -08:00
Nikolay Martynov
2c33f0ace7
Add an option to force profiling right in the beginning of premain
...
Currently this blows up JVMs before 14
2020-02-29 00:36:50 +01:00
Tyler Benson
80f13bc670
Add proper hashcode/equals methods to our matchers
...
I copied over the methods that would have been generated had the `HashCodeAndEqualsPlugin` actually been working.
Also updated the matcher tests to use the TypePool for more realistic values.
2020-02-28 14:13:18 -08:00
Tyler Benson
55276148b9
Merge pull request #1251 from DataDog/devinsba/fast-reference-matcher
...
Fail fast in the matcher, let the debug outputs use the cache
2020-02-28 09:56:45 -08:00
Nikolay Martynov
cf5fe9feff
Merge branch 'master' into mar-kolya/speedup-context-injection-matchers
2020-02-28 02:07:37 +01:00
Nikolay Martynov
3d4ab93888
Merge branch 'master' into mar-kolya/speedup-context-injection-matchers
2020-02-28 02:01:33 +01:00
Nikolay Martynov
0b196ed3ec
Merge branch 'master' into mar-kolya/constantify-decorator-matcher
2020-02-28 01:41:02 +01:00
Lev Priima
885212ee36
ClassLoaderHasNoResourceMatcher: put to cache outside critical section
2020-02-27 13:12:23 -08:00
Tyler Benson
68e4bf8375
Merge pull request #1266 from DataDog/tyler/imply-not-interface
...
Imply not(isInterface()) call for expensive matchers
2020-02-27 12:54:15 -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
dougqh
7c68238f6a
Merge branch 'master' of github.com:DataDog/dd-trace-java
2020-02-27 14:50:11 -05:00
Tyler Benson
ed061b6979
Merge pull request #1268 from DataDog/tyler/aws-uri
...
Remove conversion from URI to String back to URI
2020-02-27 11:17:00 -08:00
Tyler Benson
4e8e098330
Merge pull request #1257 from DataDog/tyler/caching-typedescription
...
Return TypePool.Resolution that caches TypeDescription calls.
2020-02-27 11:12:40 -08:00
Laplie Anderson
6ed5f56bb7
Merge pull request #1255 from DataDog/landerson/spring-blacklist
...
Add list of blacklisted spring classes
2020-02-27 14:07:42 -05:00
Tyler Benson
300c795e72
Remove conversion from URI to String back to URI
...
Apply same change as here: https://github.com/open-telemetry/opentelemetry-auto-instr-java/pull/191
2020-02-27 10:21:06 -08:00
Nikolay Martynov
2f71ad850f
Constantify non decorator matcher
2020-02-27 17:52:20 +01:00
Nikolay Martynov
d53c138016
Make FieldBackedProvider inject fields only once
2020-02-27 16:24:01 +01:00
Nikolay Martynov
6e10eee6ee
Use isEmpty
2020-02-27 15:53:48 +01:00
Nikolay Martynov
70bed6f4ac
Remove javadoc from some inappropriate places
2020-02-27 15:53:47 +01:00
Nikolay Martynov
5a17e57e99
Provide `toString` for SafeExtendsClassMatcher
2020-02-27 15:53:46 +01:00
Nikolay Martynov
06b052c4d9
Minor cleanup
2020-02-27 15:53:45 +01:00
dougqh
7511dede5d
Merge branch 'master' of github.com:DataDog/dd-trace-java
2020-02-26 15:57:39 -05:00
Tyler Benson
f431d5285a
Return TypePool.Resolution that caches
...
Caching focused on the expensive calls primarily used by our instrumentation.
2020-02-26 12:47:48 -08:00
Laplie Anderson
84c7be64b5
Add blacklist directly to global ignores
2020-02-26 11:59:21 -05:00
Tyler Benson
2ec0c1acb7
Merge pull request #1258 from DataDog/tyler/fix-whitelist-logging
...
Apply matcher if debug logging enabled to avoid confusing log output.
2020-02-26 08:57:17 -08:00
Brian Devins-Suresh
30e1d56023
Address comments
2020-02-26 09:14:49 -05:00
Tyler Benson
eb8de0d3ab
Apply matcher if debug logging enabled to avoid confusing log output.
...
Otherwise it was "Skipping" every unrelated class.
2020-02-25 18:04:27 -08:00
Laplie Anderson
fa3f449ec4
Add list of blacklisted spring classes
2020-02-25 16:33:39 -05:00
Nikolay Martynov
96f74d0fef
Compare loader hashes
2020-02-25 21:53:12 +01:00
Nikolay Martynov
82dd2aa1b3
Revert "Make sure that same classloaders get same weak ref"
...
This reverts commit 50793e5244
.
2020-02-25 21:47:42 +01:00
Brian Devins-Suresh
815bd0e9f6
Fix comment
2020-02-25 10:31:52 -05:00
Brian Devins-Suresh
2441ca3332
No more arraylist(0)
2020-02-25 10:02:53 -05:00
dougqh
65c6d17df6
Merge branch 'master' of github.com:DataDog/dd-trace-java
2020-02-25 09:41:40 -05:00
Brian Devins-Suresh
3b78d4593f
Don't need to collect mismatches in the critical path
2020-02-25 09:36:00 -05:00
Nikolay Martynov
50793e5244
Make sure that same classloaders get same weak ref
2020-02-25 14:32:35 +01:00
Nikolay Martynov
aefcc477cb
Simplify TypePoolCacheKey equals
...
We have to check string equivalence regardless of classloader state
2020-02-25 11:58:18 +01:00
Nikolay Martynov
31b5652d10
Remove reference check from TypeCacheKey
2020-02-25 10:19:47 +01:00
Nikolay Martynov
41db97ea0f
Merge branch 'master' into mar-kolya/improve-hash-calclulation-cache-pool
2020-02-25 10:18:25 +01:00
Brian Devins-Suresh
5ebc13cafa
Increase performance on java 8
2020-02-24 17:10:41 -05:00
Brian Devins-Suresh
af67dfa720
Need to cache the boolean. The list can be taken later as debug is expected to be slower
2020-02-24 14:39:17 -05:00
Brian Devins-Suresh
75af71584c
Refactor an agent usage, and fix logic issue
2020-02-24 14:39:17 -05:00
Brian Devins-Suresh
e65177a143
Fail fast in the matcher, let the debug outputs use the cache
2020-02-24 14:39:17 -05:00
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
00c268e6d8
Add equivalence check to TypeCacheKey
2020-02-21 12:24:53 -05:00
Nikolay Martynov
d4c6d86e6d
Do not use zero for hashcode
...
Seems like this may have odd sideeffects
2020-02-21 12:24:09 -05:00
Nikolay Martynov
f736c425ff
TypeCacheKey are different if hash codes are different
...
And this is very easy to check
2020-02-21 12:23:41 -05:00
Nikolay Martynov
9d7682f776
Fix hashcode calculation in TypeCacheKey
...
Using potentially very large number for a mod is probably not very effective
2020-02-21 12:22:51 -05: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
Lev Priima
37bcb4e288
ClassLoaderMatcher switch to Guava Cache
2020-02-21 03:58:02 -08:00
Lev Priima
52e0eb9d37
SkipClassLoaderMatcher use str-switch in shouldSkipClass(ClassLoader)
2020-02-20 21:02:42 -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
heathkd
b7b46caaa8
create AgentBuilder instance with logging listeners only if debug mode is enabled
2020-02-20 16:29:27 -05: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
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
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
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
Nikolay Martynov
02fb8d8888
Fix JaxRs matching
...
Paranthesys was missplaced leading to more complicated matcher than needed
2020-02-18 18:42:36 -05:00
Heather D'Souza
a81f4dc223
Merge pull request #1192 from DataDog/heather.dsouza/scheduling_annotation
...
Add support for Spring Scheduling
2020-02-18 14:07:06 -05:00
Jean-Philippe Bempel
efe8ee375b
Merge pull request #1226 from jpbempel/jpbempel/reuseKeys
...
Enable reuseKeys on WeakConcurrentMap
2020-02-18 19:09:05 +01:00
heathkd
917deb19be
change imports to use bootstrap api package
2020-02-14 20:48:18 -05:00
heathkd
f3537e1665
change module and file names to match version of earliest supported version of spring-context
2020-02-14 20:47:16 -05:00
heathkd
9eb51248cd
address PR comments
2020-02-14 20:47:16 -05:00
heathkd
b21e361591
add test for interval task and trigger task
2020-02-14 20:46:26 -05:00
heathkd
cc1aaf5fc5
replace Trace annotation with regular API interaction
2020-02-14 20:46:26 -05:00
heathkd
68c323ac56
create ScheduledTasks bean and application context config
2020-02-14 20:46:00 -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
jean-philippe bempel
58b1cff62e
Enable reuseKeys on WeakConcurrentMap
...
for each call to get method in WeakConcurrentMap, a LatentKey is
created. Considering the frequency of call it's significant.
Also, the classloader of the tracer can be considered as permanent
through the lifecycle of the JVM which is a prerequisite to be able
to reuse keys (otherwise classloader leak).
2020-02-14 14:52:59 +01:00
Tyler Benson
618780b62f
More general class loading instrumentation ( #1218 )
...
More general class loading instrumentation
2020-02-13 11:54:25 -08:00
Trask Stalnaker
94dd781e50
Better naming
2020-02-13 11:31:47 -08:00
Trask Stalnaker
4dfd9534e8
Add optimization for IBM JVM
2020-02-13 11:31:47 -08:00
Trask Stalnaker
a0224e2ad7
Fix for test failure on IBM JVM
2020-02-13 11:31:47 -08:00
Trask Stalnaker
bfc7a0de55
More general class loading instrumentation
2020-02-13 11:31:45 -08:00
Giuseppe Cafarelli
f94f76488f
Add test for elasticsearch 2 TransportActionListener
2020-02-13 14:34:21 +01:00
Nikolay Martynov
ef9ebffc54
Simplify unknown compression handling
2020-02-12 15:08:25 -05:00
Nikolay Martynov
ca9f623d05
Add profiling lz4 compression support
...
Gzip is still the default
2020-02-12 15:00:02 -05:00
Giuseppe Cafarelli
8f552993a6
Fix NPE on TransportActionListener for elasticsearch 2
2020-02-12 12:14:57 +01:00
Nikolay Martynov
fd58187994
Support JFR profiling
2020-02-11 14:55:19 -05:00
Laplie Anderson
9023c6e1c7
Fix a couple tests using the wrong arguments
2020-02-11 11:44:46 -05:00
Laplie Anderson
01b0bebc93
minor formatting
2020-02-11 11:44:46 -05:00
Laplie Anderson
0cb0ae0a48
Less repetition in gradle files
2020-02-11 11:44:46 -05:00
Laplie Anderson
c79fe3a459
Create shared internal jar
2020-02-11 11:44:46 -05:00
Laplie Anderson
3c0877e38a
Create a shared parent classloader
2020-02-11 11:42:39 -05:00
Tyler Benson
032f22f5a6
Reduce tracer thread count by combining scheduled executors int… ( #1200 )
...
Reduce tracer thread count by combining scheduled executors into a single executor.
2020-02-11 08:18:59 -08: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
486d98135e
Code review changes
2020-02-10 11:37:36 -08:00
Tyler Benson
e5980d4812
Fix muzzle
2020-02-10 10:45:58 -08:00
Tyler Benson
75c7769192
Reduce tracer thread count by combining scheduled executors into a single executor.
...
Pulls out utility classes for reuse by other projects.
This also meant the dependency had to be bundled with dd-trace-ot since it isn't published as a separate dependency.
2020-02-10 10:45:58 -08:00
heathkd
7e62bca7fe
limit hibernate latest dependency test to 5.x
2020-02-07 17:57:34 -05:00
Lev Priima
5265a43c6d
Reduce use of Thread::setContextClassLoader
2020-02-06 22:53:04 -05:00
Tyler Benson
14b5576cd8
Merge pull request #1201 from DataDog/tyler/upgrade-okhttp
...
Upgrade OkHttp client to 3.12.8
2020-02-04 15:55:36 -08:00
Tyler Benson
cab139e905
Upgrade OkHttp client to 3.12.8
2020-02-04 15:06:44 -08:00
Laplie Anderson
a811c027ce
Merge pull request #1188 from DataDog/landerson/finatra
...
Finatra Instrumentation
2020-02-04 17:36:47 -05:00
Tyler Benson
daae198b08
Set dispatcher span on request instead of clear
...
Clearing the span caused traces to be broken up and reported independently when calling forward/include.
2020-01-30 21:55:16 -05:00
Douglas Q Hawkins
53d32b4324
Merge pull request #1189 from DataDog/dougqh/type-caching2
...
Revised type cache
2020-01-30 18:47:02 -05:00
Laplie Anderson
ed12af6994
Assume parent span is netty
2020-01-30 18:21:49 -05:00