Tyler Benson
a3875aff2c
Logging improvements and other misc
...
from reviewing a customer’s logs.
2018-08-09 15:59:59 +10:00
Tyler Benson
064ae4c238
Separate span for input and output streams.
2018-08-03 15:41:16 +10:00
Nikolay Martynov
7ad9305927
Add some integration tests to check ByteBuddy's behavoir on class loading and parsing
2018-08-01 14:17:12 -04:00
Nikolay Martynov
bb2126bd9a
Improve ByteBuddyElementMatchers javadoc
2018-07-31 20:14:03 -04:00
Nikolay Martynov
78e6a9c336
Get rid of DDAdvice
...
Newer ByteBuddy api simplifies things.
2018-07-31 20:14:03 -04:00
Nikolay Martynov
6bc1d1ab8e
Implement `saveHasSuperType` and use it instead of `hasSuperType`
...
The idea is to just 'trim' type hierarchy 'up-trees' that we cannot
resolve dring instrumentation instead of failing to instrument completely.
2018-07-31 20:13:59 -04:00
Nikolay Martynov
bae79514c0
Fix DDLocationStrategy to use DataDog ClassLoader
...
This allows ByteBuddy to properly find classes injected into the
agent.
Thanks @realark for providing a fix!
2018-07-31 20:12:17 -04:00
Nikolay Martynov
4ae9263e1c
Set POOL_ONLY DescriptionStrategy for ByteBuddy
...
This makes sure no classes are loaded during instrumentation
transformation which allows us to safely instrument depndent classes.
2018-07-31 20:12:17 -04:00
Tyler Benson
ff9ef671f3
Apply formatter on groovy files.
2018-07-31 12:09:28 +10:00
Tyler Benson
51919a77bb
Apply formatter on java files.
2018-07-31 12:07:43 +10:00
Tyler Benson
b5c8a8b8fc
Apply formatter on gradle files.
2018-07-31 12:04:00 +10:00
Nikolay Martynov
f6edf913b7
Remove functions that do reflection which is not Java10 compliant
...
These functions are not used anylonger
2018-07-27 14:56:28 -04:00
Andrew Kent
b64be6228c
Don't check for helper classes in muzzle reference check
2018-07-27 11:03:02 -07:00
Nikolay Martynov
0f80f7dd40
Remove old checks from HelperInjector
...
They are not really producing anything useful anf they depend on API
that is forbidden in Java9+
2018-07-26 10:11:24 -04:00
Nikolay Martynov
8cc2f6cbb2
Skip `jdk.internal.reflect.DelegatingClassLoader` in `ClassLoaderMatcher`
...
This is the same thing as `sun.reflect.DelegatingClassLoader` in older JVMs
2018-07-26 10:01:55 -04:00
Tyler Benson
aa3fc0717e
Fix some formatting changes.
2018-07-20 10:31:14 +10:00
Tyler Benson
12a2fce96d
Upgrade java formatter version.
2018-07-19 14:10:53 +10:00
Andrew Kent
23d0439b12
Remove muzzle dead code, doc cleanup, and better logging
2018-07-13 16:24:01 -07:00
Andrew Kent
2925df8de5
Clean up and document
2018-07-10 17:26:49 -04:00
Andrew Kent
8e182edc03
Replace BIPUSH with LDC to prevent overflow
2018-07-10 17:26:49 -04:00
Andrew Kent
628f4929dc
Muzzle Assertions and gradle plugin
2018-07-10 17:26:49 -04:00
Andrew Kent
541a6998a4
Hook up muzzle to Instrumenter.Default's matcher
2018-07-10 17:26:49 -04:00
Andrew Kent
d61f65f4ff
Muzzle outline in Instrumenter.Default
2018-07-10 17:26:49 -04:00
Andrew Kent
836f49205b
TraceConfigInstrumentation implements Instrumenter directly
2018-07-10 17:26:49 -04:00
Andrew Kent
02a3e6a5d3
New Instrumentation API
2018-07-06 17:17:32 -04:00
Andrew Kent
33a139cdcb
New Instrumentation outline
2018-06-28 14:54:14 -07:00
Andrew Kent
f8e3ac3097
New instrumentation api outline
2018-06-28 14:54:14 -07:00
Andrew Kent
3894f829bb
Remove most shadow relocates
...
Shadow relocates are no longer needed because of our new bootstrapping
process.
It's no longer possible for agent dependencies to interfere with the
user's classpath.
The immediate reason for this change is a bug created in the Cassandra
instrumentation.
The Cassandra instrumentation references guava transitive deps from
the datastax driver. These references are re-written by shadow,
causing the instrumentation to reference 'datadog.agent.deps.google.*'
instead of the guava class.
2018-06-27 09:35:54 -07:00
Tyler Benson
83db4e8c4d
Merge pull request #352 from DataDog/tyler/netty
...
Netty HTTP client and server instrumentation
2018-06-21 14:11:12 +10:00
Nikolay Martynov
9cc99bafbf
Simplify Jacoco configuration
2018-06-20 17:13:30 -04:00
Nikolay Martynov
e070a9be4a
Fix jacoco excluded classes concatenation
2018-06-20 17:05:16 -04:00
Tyler Benson
9b3df4ff9e
Netty HTTP client and server instrumentation first pass
...
Doesn’t target right versions. Needs lots of testing.
2018-06-18 12:52:42 +10:00
Gary Huang
fdc56c0e13
change the way classes are loaded so that classLoaderHasClasses would still work for the classes that are being instrumented and being matched at the same time.
2018-06-08 23:53:13 -04:00
Tyler Benson
206de0fb54
Add some more missing helper classes
2018-06-09 10:59:08 +10:00
Tyler Benson
d235618a6e
Add instrumentation for Java’s UrlConnection
...
For HttpUrlConnection, trace propagation headers are added to the outgoing request.
Due to the awkward design of the API, the ability to instrument in a natural way was limited, thus the main points instrumented are the get{Input,Output}Stream methods.
2018-06-06 09:12:48 +10:00
Andrew Kent
217dd411de
Disable muzzle
2018-05-21 10:58:30 -07:00
Andrew Kent
0bd7a62464
Flags, Fields, Methods, and builder logic for References
2018-05-18 10:45:05 -07:00
Andrew Kent
bf70b3031b
Cache classloaders for reference checking
2018-05-18 10:45:05 -07:00
Andrew Kent
ad7f6a5e71
Generate at compile-time and lazy-load reference matchers
2018-05-18 10:45:05 -07:00
Andrew Kent
98b44c1dfb
Remove ReplaceIsSafeVisitor
2018-05-18 10:45:05 -07:00
Andrew Kent
08df3cef35
Use bytebuddy plugin to add safety checks to instrumentation
2018-05-18 10:45:05 -07:00
Tyler Benson
46878d24d3
Name service based on servlet context
...
This only applies if a service name hasn’t been set or is empty.
This is particularly useful for environments that deploy multiple war files to the same app server.
2018-05-11 13:59:03 +10:00
Tyler Benson
d5d24c50c7
Replace @Unroll’s with a rule to always unroll.
2018-05-10 15:24:59 +10:00
Tyler Benson
9a52303376
Apply jacoco to every java project
...
Some projects have ignores/whitelists, but generally coverage is pretty high.
AFAIK, this doesn’t really capture instrumentation test coverage though.
2018-05-04 16:23:32 +10:00
Tyler Benson
f35e2e6ebe
Remove various warnings and other cleanup
...
Also upgrade some plugins.
2018-05-04 14:05:06 +10:00
Tyler Benson
2561e72824
Do we do want to ignore proxies?
...
If so, we have to change the test to be compatible.
2018-05-04 14:03:48 +10:00
Tyler Benson
84b7080860
Fix AgentInstaller ignores and @Trace naming
2018-05-03 13:03:53 +10:00
Tyler Benson
57eade612f
Upgrade Byte-buddy to 1.8.8
...
Also remove some erronously checked in files.
2018-04-26 22:53:45 +10:00
Andrew Kent
35c40846ad
Accept string for method params on classloader method matcher
2018-04-11 13:32:58 -07:00
Andrew Kent
06b80351e3
Log where all version files are visible
2018-04-10 16:54:22 -07:00