Tyler Benson
25d109753d
Merge pull request #809 from DataDog/tyler/httpasyncclient
...
Add instrumentation for Apache HttpAsyncClient
2019-04-29 08:14:11 -07: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
20df3aa18e
Add HttpAsyncClient to Elasticsearch for verification.
2019-04-25 17:27:06 -07:00
Tyler Benson
179b9b69cb
Upgrade Byte Buddy to 1.9.12
...
and a few other minor code changes.
2019-04-25 10:36:35 -07:00
Tyler Benson
ec91a75848
Add config allowing classes to be excluded from transformation
...
Add the following system property or corresponding environment variable:
```
dd.trace.classes.exclude=some.packagename.*,some.classname.MyClass$NestedClass
```
2019-04-19 10:41:13 -07:00
Tyler Benson
0315c976af
Fixes for ratpack.
2019-04-16 13:29:26 -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
dc2e435de9
Merge pull request #797 from DataDog/tyler/ratpack
...
Update ratpack instrumentation and remove default disabled.
2019-04-16 08:14:10 -07:00
Luca Abbati
e8435b165d
Fixed typo in comment
2019-04-11 15:49:10 +02:00
Luca Abbati
3a6fedda14
Add context getter/setter methods to an object only if not already defined
...
Class `FieldBackedProvider` uses ByteBuddy to add a field and its respective getters and setters to store the context object.
Assuming that we have a class `A` that implements runnable and that we wrap with a `FieldBackedProvider`
`Runnable` interfaces, if later on we use a cglib's `Enancher` class on `A` then the our mechanism will kick in again and try
to add the methods again. This causes a `java.lang.ClassFormatError: Duplicate method name "get__datadogContext$java$lang$Runnable" with signature "()Ljava.lang.Object;"`
to be thrown because CGLIB already copied over those methods from the original class `A` to the newly created class.
With this commit we now check that method were not previously defined before adding them, and if they were then we avoid adding them
again.
The reason why it wasn't faiing before is that we only checked on context field existence, not methods and cglib do not copy over fields, it copies only methods. E.g.
```
public class Main {
public static class A {
private String name = "hey";
public String getName() {
return this.name;
}
}
public static void main(String[] args) {
System.out.println("----- 'A' declared fields -----");
A s = new A();
for (Field f : s.getClass().getDeclaredFields()) {
System.out.println("field: " + f.getName());
}
for (Method m : s.getClass().getDeclaredMethods()) {
System.out.println("method: " + m.getName());
}
System.out.println("----- Proxy declared fields -----");
Enhancer enhancer = new Enhancer();
enhancer.setSuperclass(A.class);
enhancer.setCallback((FixedValue) () -> null);
A proxy = (A) enhancer.create();
for (Field f : proxy.getClass().getDeclaredFields()) {
System.out.println("field: " + f.getName());
}
for (Method m : proxy.getClass().getDeclaredMethods()) {
System.out.println("method: " + m.getName());
}
}
}
```
Results in:
```
----- 'A' declared fields -----
field: name
method: getName
----- Proxy declared fields -----
field: CGLIB$BOUND
field: CGLIB$FACTORY_DATA
field: CGLIB$THREAD_CALLBACKS
field: CGLIB$STATIC_CALLBACKS
field: CGLIB$CALLBACK_0
field: CGLIB$CALLBACK_FILTER
method: equals
method: toString
method: hashCode
method: clone
method: getName
method: newInstance
method: newInstance
method: newInstance
method: setCallbacks
method: CGLIB$SET_STATIC_CALLBACKS
method: CGLIB$SET_THREAD_CALLBACKS
method: getCallback
method: getCallbacks
method: CGLIB$STATICHOOK1
method: CGLIB$BIND_CALLBACKS
method: setCallback
```
2019-04-11 15:45:43 +02:00
Tyler Benson
c4ac5b94ec
Fix span relationships and other review issues.
2019-04-10 17:31:22 -07:00
Tyler Benson
a11b888d7a
Update ratpack instrumentation and remove default disabled.
2019-04-08 18:26:08 -07:00
Nikolay Martynov
3b0e769e88
Fix helper injection in context provider
...
Currently helpers will not be injected if instrumentation doesn't
apply. Unfortunately it is possible for some classes to have context
fields added even if instrumentation is not allied (i.g. instrumented
classes are not used). Fix this by always injecting all helpers if we
inject context fields.
2019-03-26 15:53:34 -04:00
Tyler Benson
a73b8c36f0
Review changes.
2019-03-25 09:56:05 -07:00
Tyler Benson
26a0194b84
Prevent instrumentation’s Context from applying if Muzzle fails
...
This can cause problems if muzzle prevents an integration from loading because the class for the new field being added may not be injected. This results in an error:
```
Caused by: java.lang.NoClassDefFoundError: datadog/trace/bootstrap/instrumentation/context/FieldBackedProvider$ContextAccessor$org$hibernate$Session$datadog$trace$bootstrap$instrumentation$hibernate$SessionState
```
2019-03-25 08:19:44 -07:00
Tyler Benson
07463e04bd
Merge pull request #772 from DataDog/tyler/status-error-mapping
...
Implement Http Status error mapping via config
2019-03-20 19:14:17 -07:00
Tyler Benson
715af67e70
Implement Http Status error mapping via config
...
Using the following defaults:
* `DD_HTTP_CLIENT_ERROR_STATUSES=400-499`
* `DD_HTTP_SERVER_ERROR_STATUSES=500-599`
2019-03-19 17:11:48 -07:00
Tyler Benson
7ffcf5ad4d
Change DDAgentWriter to use Disruptor
...
Serialize payloads as they arrive, send to agent when size exceeds 5MB.
If a flood of traces fills up the RingBuffer, we still count the traces that are discarded for stats reporting.
Do we want to allow configuration of the RingBuffer size?
2019-03-19 09:44:23 -07:00
Nikolay Martynov
63e0c0f032
Support Unix Domain Socket proxy to send traces
2019-03-15 11:36:44 -07:00
Tyler Benson
192eb894a4
Fix Trace Search + Analytics integration config key
2019-03-14 10:54:43 -07:00
Tyler Benson
d30d715dc8
Migrate Spring Web{flux} instrumentation to Decorator
2019-03-12 09:38:53 -07:00
Tyler Benson
d31965ff5a
Merge pull request #761 from DataDog/tyler/rabbit-decorator
...
Migrate RabbitMQ instrumentation to Decorator
2019-03-12 08:08:22 -07:00
Will Gittoes
bf110640e8
Merge branch 'master' into willgittoes-dd/hibernate-integration
2019-03-12 09:39:58 +11:00
Tyler Benson
2146678d0a
Migrate RabbitMQ instrumentation to Decorator
2019-03-11 14:09:06 -07:00
Tyler Benson
c500d4b236
Migrate OkHttp Instrumentation to Decorators
2019-03-08 15:12:29 -08:00
Tyler Benson
084c2eb51f
Migrate Netty instrumentation to Decorator
2019-03-04 08:16:25 -08:00
Will Gittoes
ffa140f444
codenarc doesnt know how to parse datatables
2019-03-01 13:12:14 +11:00
Will Gittoes
bfc1042c3a
Additional test for OrmClientDecorator
2019-03-01 12:33:57 +11:00
Tyler Benson
50b4e1623e
Migrate JMS instrumentation to Decorator
2019-02-28 13:52:29 -08:00
Will Gittoes
3334affc42
Add test for OrmClientDecorator
2019-02-28 15:38:25 +11:00
Tyler Benson
133460a79a
Stop making hard references in HelperInjector
...
Also make awaitGC interruptable.
2019-02-27 19:09:01 -08:00
Tyler Benson
f7e8980d08
Add null check on span type
...
Null spanTypes cause the tag to be removed.
2019-02-27 15:35:15 -08:00
Tyler Benson
a413b0d08d
Review changes.
2019-02-27 12:39:03 -08:00
Tyler Benson
4e9449db81
Migrate Jax-rs annotation instrumentation to Decorator
2019-02-27 09:40:08 -08:00
Tyler Benson
34242e4849
Migrate method tracing instrumentation to Decorator
2019-02-27 09:40:08 -08:00
Tyler Benson
9e81bba3fa
Review comments
2019-02-27 08:41:32 -08:00
Tyler Benson
c46909e59f
Migrate JDBC instrumentation to Decorator
2019-02-26 11:16:35 -08:00
Will Gittoes
079fcd6a56
Use a Dectorator for the Hibernate instrumentation
2019-02-26 17:31:42 +11:00
Tyler Benson
93e38f6f0d
Rename and static import decorators instance
...
In the instrumentation it reads better.
2019-02-22 13:44:34 -08:00
Tyler Benson
f04d113ecb
Make decorators public and add tests
2019-02-22 09:42:53 -08:00
Tyler Benson
9c8e689b6d
Add decorator for couchbase instrumentation
2019-02-21 15:27:26 -08:00
Tyler Benson
49faeca145
Exclude groovy macro package from instrumentation
...
It generates a lot of noise when running tests and likely shouldn’t be instrumented.
2019-02-21 11:35:21 -08:00
Tyler Benson
a98c22ac3a
Introduce base decorators
2019-02-20 16:11:18 -08:00
Tyler Benson
4dd4ee0c05
Trace Analytics Config
...
Also make the instrumentation names a sorted list so the evaluation order is consistent.
2019-02-20 10:56:14 -08:00
Tyler Benson
c65c79207a
Remove `isSynthetic()` ignore
...
There’s concern that this will cause classes to be skipped that we do want to instrument.
2019-02-14 08:45:02 -08:00
Tyler Benson
ccee63574d
Exclude several type identifications from instrumentation
...
I considered excluding Interfaces too, but that would break people that added `@Trace` to their default methods.
Just a hunch, but I don’t think we want to instrument classes marked as synthetic, for example proxies. We may want to extend this to our method matchers (and maybe exclude native methods too).
We might want to instrument enums/annotations, but that seems unlikely.
2019-02-11 16:23:08 -08:00
Tyler Benson
0802bb864c
Merge pull request #696 from DataDog/tyler/jmxfetch-config
...
JMXFetch bundled integrations disabled by default
2019-02-07 09:48:32 -08:00
Nikolay Martynov
931e6ff8af
Merge pull request #688 from DataDog/mar-kolya/webflux-fixes
...
Fix webflux integration to not rely in active span
2019-02-07 12:45:50 -05:00
Tyler Benson
4414dc2ad5
JMXFetch bundled integrations disabled by default
...
Enable each individually by setting `-Ddd.integration.<integration_name>.enabled=true`.
2019-02-06 13:00:52 -08:00
Tyler Benson
6cebabbada
Move integrations config to Config class.
2019-02-05 08:20:49 -08:00
Nikolay Martynov
a086f38f2f
Fix webflux integration to not rely in active span
...
Netty event loop instrumentation doesn't allow us to attribute work to
correct span so we have to maintain that manually.
2019-02-05 10:38:21 -05:00
Daniel Solano Gómez
4953a6c417
Skip clojure.lang.DynamicClassLoader
...
Not doing this seems to cause issues with Clojure protocols.
An application instrumented with the dd-java-agent that will
otherwise run fine will fail with ClassNotFoundException for
classes pertaining to Clojure protocols.
2019-02-04 07:12:29 -06:00
Tyler Benson
03bcdc97cc
Move awaitGC to common utility package
2019-01-25 10:32:09 -08:00
Nikolay Martynov
b3ad700b34
Merge pull request #666 from DataDog/mar-kolya/aws-sdk2
...
Initial AWS2 SDK instrumentation
2019-01-25 13:01:32 -05:00
Nikolay Martynov
6563a711c2
Merge pull request #671 from DataDog/osgi-fix
...
Improve OSGi class loader instrumentation
2019-01-25 12:48:45 -05:00
Nikolay Martynov
04fbb5085f
Improve OSGi class loader instrumentation
...
It turns out that Eclipse's OSGi implementation has two problems:
* It doesn't respect system properties by default
* It has tricky classloader implementation that loads bootstrap
classes from the classloader-has-delegation-to-bootstrap check but
doesn't load bootstrap classes from 'normal' code.
This should address second problem and make Eclipse's OSGi
implementation 'safe' by default.
2019-01-25 08:52:07 -05:00
Tyler Benson
146a16df25
Upgrade weak-lock-free to 0.15
2019-01-24 11:44:28 -08:00
Nikolay Martynov
6471a1a81e
Add $ separate to state field name
2019-01-23 22:32:00 -05:00
Andrew Kent
097c557651
Delay jmxfetch init when custom log manager is used by client's app
2019-01-16 12:18:29 -08:00
Andrew Kent
cc8db0b11f
Workaround module bug by skipping LogManager$Cleaner instrumentation
2019-01-09 15:03:43 -08: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
Andrew Kent
2861d87071
slf4j MDC autoinjection integration
2018-12-19 17:09:00 -08:00
Andrew Kent
4dc3528097
Add post-match hook to default instrumenter api
2018-12-19 17:07:43 -08:00
Andrew Kent
d0f3cfa3d6
Use asm bundled by bytebuddy in field-backed provider
...
JVM's ASM is not bundled with the agent and may not be present at runtime.
2018-12-19 12:37:47 -08:00
Andrew Kent
0b92413d4a
Move JvmBootstrapTest into a fork inside a groovy test
2018-12-12 20:17:48 -08:00
Andrew Kent
0240ad5154
Move default instrumentation declarations to Instrumenter.Default
2018-12-11 18:01:40 -08:00
Andrew Kent
1004ee4ef7
Patch java.util.logging.Logger for safe use with jmxfetch
2018-12-11 17:26:02 -08:00
Nikolay Martynov
3225c8fd03
Fix wildfly startup by injecting context classes into bootstrap package
2018-12-07 09:56:04 -05:00
Nikolay Martynov
600674b03a
Put back muzzle check for 'dd-' threads
2018-12-05 17:20:50 -05:00
Nikolay Martynov
4deb68bfd7
Fix memory leak in WeakMapSuppliers.WeakConcurrent
...
The problem there is that it references JVM shutdown hook that keeps
reference to cleanup executor which potentially can keep references to
all sort of things - and this doesn't get cleaned up untill JVM
shutdown.
Solution is to remove shutdown hook when supplier is being GCed.
2018-12-05 15:02:40 -05:00
Nikolay Martynov
ad98ebc01f
Add some comments and some other minor CR tweaks
2018-11-29 15:18:46 -08:00
Nikolay Martynov
1509286b15
Remove MapBackedProvider
2018-11-29 15:18:46 -08:00
Nikolay Martynov
118a61cc67
Add field backed context provider
2018-11-29 15:18:46 -08:00
Nikolay Martynov
b89e73b3c0
Switch executor instrumentation to use context storage
2018-11-29 15:18:46 -08:00
Andrew Kent
3c4b480a18
Share tooling loader across muzzle runs
2018-11-28 13:01:01 -08:00
Andrew Kent
6ee5fd27b0
Guard against invoking WeakConcurrent constructor
2018-11-28 12:05:47 -08:00
Gary
50c2af9abb
remove classloader matcher
2018-11-26 16:57:12 -05:00
Gary
bf30d73746
remove skipping of ratpack helper checks
2018-11-26 16:55:36 -05:00
Andrew Kent
1667e590b9
Log Java and JVM version info.
2018-11-02 17:12:00 -07:00
Nikolay Martynov
3c0ba56d2c
Make context maps 'global' for a given key class name
...
This ensures that different instrumenters using same key class can see
each others state
2018-11-02 12:59:30 -04:00
Nikolay Martynov
98df97af3e
First iteration on a better context store api
...
Separate context storage from actual fetching/putting
2018-11-02 10:46:57 -04:00
Andrew Kent
d0b00e0dc0
Inject all map holder classes into the bootstrap
2018-11-01 15:05:20 -07:00
Andrew Kent
5f0f6f1474
Inject dynamic classes into topmost class loader
2018-10-31 16:11:52 -07:00
Andrew Kent
5824eb83b8
Merge pull request #537 from DataDog/ark/instrumentation-context-outline
...
instrumentation context map-backed impl
2018-10-29 18:48:23 +00:00
Andrew Kent
b89aa54a93
Move ASM visiting method into context-store impl
2018-10-26 14:06:57 -07:00
Andrew Kent
cc27f1507e
Javadoc for map-backed context store. Type info on context store api
2018-10-26 13:41:24 -07:00
Nikolay Martynov
fc13d7db2b
Reorganize WeakConcurrent implementation to allow cleanup thread GC when map is out of scope
2018-10-23 16:30:51 -04:00
Tyler Benson
13c91d11e5
Upgrade shadow to 4.0.1 and exclude module-info.class files.
2018-10-22 10:44:04 +10:00
Tyler Benson
192b0fd478
misc minor changes
2018-10-22 10:44:04 +10:00
Andrew Kent
7547e0fc5e
Cleanup and javadoc
2018-10-19 13:07:11 -07:00
Andrew Kent
131074c255
Move InstrumentationContext api to bootstrap
2018-10-18 10:16:15 -07:00
Andrew Kent
b02ed4e813
Initial Map-backed implementation and test
2018-10-17 15:29:59 -07:00
Andrew Kent
f098b8027e
Basic implementation outline and happy-path test
2018-10-16 10:22:36 -07:00
Andrew Kent
7330ceaf4e
Instrumentation Context outline for HttpURLConnection as an example
2018-10-15 11:05:23 -07:00
Andrew Kent
13c96bba33
Additional test for shared field
2018-10-10 10:40:04 -07:00
Tyler Benson
330e09d0b3
Merge pull request #477 from DataDog/tyler/bb-upgrade
...
Upgrade Byte Buddy to 1.9.0
2018-10-02 11:31:11 -04:00
Tyler Benson
6b8eb60ca2
Upgrade Byte Buddy to 1.9.0
2018-10-01 13:31:03 -04:00
Andrew Kent
5864dd90e7
Allow instrumenting com.sun.messaging. namespace
2018-09-28 14:37:32 -07:00
Tyler Benson
3d78afbc2c
Disable Executor instrumentation ThreadPoolExecutor instances
...
If we can’t add generic runnables to the queue.
This won’t solve the problem for all cases, but it will help with some.
Tests forthcoming.
2018-09-20 16:06:01 +10:00
Tyler Benson
f9f0438e85
Initialize WeakMapProvider even earlier
...
It is used by classes delcared as static fields in AgentInstaller, so there were some cases where the fallback is being used.
2018-09-19 08:37:08 +10:00
Tyler Benson
296f9adfc2
Ignore byte buddy classes
...
not having this produced the following error on startup:
```
Cannot resolve type description for net.bytebuddy.dynamic.Nexus
```
2018-09-18 17:20:36 +10:00
Tyler Benson
8061bd2471
Add comment.
2018-08-31 16:27:31 +10:00
Tyler Benson
2d04ef292e
Merge pull request #468 from DataDog/tyler/evict-typepool
...
Add eviction to a TypePool.CacheProvider’s cache
2018-08-31 08:57:18 +10:00
Tyler Benson
6b0f20fc05
Add eviction to a TypePool.CacheProvider’s cache
...
Most items loaded are probably not often used. Puts an upper limit on the size and evicts unused Resolution’s over time.
2018-08-30 11:56:53 +10:00
Andrew Kent
61aaebfc97
Create muzzle references from ldc instructions
2018-08-29 17:18:11 -07:00
Andrew Kent
7154b54e10
Rename TracerBridge and Provider
2018-08-27 12:04:26 -07:00
Andrew Kent
9f1d22ea6b
Register TracerBridge in TracerInstaller instead of DDTracer init
2018-08-27 12:04:26 -07:00
Andrew Kent
c6841c9d06
Add maven version scanning to muzzle
2018-08-24 10:47:37 -07:00
Tyler Benson
36b49c7de3
Merge pull request #451 from DataDog/tyler/netty-client-fixes
...
Allow trace to persist across netty connect.
2018-08-23 16:03:58 +10:00
Tyler Benson
898647e000
Allow trace to persist across netty connect.
...
Also create span with error on connection failure.
Add tests for connection failure.
2018-08-22 09:45:33 +10:00
Nikolay Martynov
c95baef487
Wait for given reference to get GCed in `waitGC`
...
This should help to make sure that object we are interested in
actually gets GCed.
This change also improves tests for PendingTrace and ScopeManager to
make sure that trace gets cleaned up.
2018-08-21 10:05:10 -04:00
Nikolay Martynov
138f78ce4b
Make Muzzle log class being instrumented
2018-08-16 17:28:32 -04:00
Andrew Kent
3c1bf569ea
Add reference pretty-printer to muzzle plugin
2018-08-15 10:01:19 -07:00
Andrew Kent
c351a4825e
Regenerate muzzle bytecode when run multiple times
2018-08-15 09:49:50 -07:00
Nikolay Martynov
36ec5d51e5
SafeHasSuperTypeMatcher: handle exceptions when getting class erasure
2018-08-15 09:49:50 -07:00
Andrew Kent
a7c63b9261
Clarify comment for safe interface iteration.
2018-08-15 09:49:50 -07:00
Andrew Kent
57e85d4a13
Catch and log instrumentation matcher exception
...
Catching instrumentation matcher exceptions at the Instrumenter level
allows other, unrelated instrumentation to match.
2018-08-15 09:49:50 -07:00
Andrew Kent
d64b162539
Remove safeMatch from element matcher and document bb cache class
2018-08-15 09:49:50 -07:00
Andrew Kent
260e3520aa
Fix classloading integration tests
2018-08-15 09:49:50 -07:00
Andrew Kent
35c6fa2343
More error catching in safe matcher and reduce log level
2018-08-15 09:49:50 -07:00
Andrew Kent
75a6cee068
Add DDCachingPoolStrategy to reuse type descriptions
2018-08-15 09:49:50 -07:00
Ark
f01c8349cc
Deep-merge Reference fields and methods
...
Plus misc cleanup.
2018-08-15 09:49:50 -07:00
Andrew Kent
e7bb7cfb3e
Remove findLoadedClass
2018-08-15 09:49:50 -07:00
Andrew Kent
50c5a57c49
Replace UnloadedType with ByteBuddy TypeDescription
2018-08-15 09:49:50 -07:00
Andrew Kent
27cade057c
Delegate bootstrap resource loading for unloaded types
2018-08-15 09:49:37 -07:00
Andrew Kent
f8f45d7f14
Muzzle field matching
2018-08-15 09:49:37 -07:00
Andrew Kent
c4daf007e3
Muzzle method and access matching
2018-08-15 09:49:37 -07:00
Andrew Kent
4887822eba
Muzzle method ref creation and matching
2018-08-15 09:46:30 -07:00
Andrew Kent
0f6761dd4b
Optimize Instrumenter logging
2018-08-15 09:46:30 -07:00
Andrew Kent
55a0abce68
Add notes of potential references to ReferenceCreator
2018-08-15 09:46:30 -07:00
Tyler Benson
84d38a8270
Merge pull request #439 from DataDog/tyler/method-signatures
...
Cleanup method signatures and servlet 2 instrumentation
2018-08-13 17:29:02 +10:00
Tyler Benson
f801cbd466
Merge pull request #428 from DataDog/tyler/use-WeakConcurrentMap
...
Use WeakConcurrentMap
2018-08-13 16:44:16 +10:00
Tyler Benson
232708e457
Prevent abstract classes from going through the muzzle plugin.
2018-08-13 15:35:46 +10:00
Tyler Benson
4583d12b31
Cleanup method signatures and servlet 2 instrumentation
...
adding the abstract servlet instrumentation reduces code duplication and makes it more similar to servlet 3 instrumentation.
2018-08-13 15:14:10 +10:00
Nikolay Martynov
fc8cc47f85
WeakMap improvements
...
* Improve tests to not depend on thread schedulting
* Test all underlying implementations
* Reduce number of static values
2018-08-10 22:16:21 -07:00
Tyler Benson
6cef9b89b0
Make some things non-static
2018-08-10 15:41:26 +10:00
Tyler Benson
b220309a68
PR review changes.
2018-08-10 12:23:13 +10:00
Tyler Benson
a3875aff2c
Logging improvements and other misc
...
from reviewing a customer’s logs.
2018-08-09 15:59:59 +10:00
Tyler Benson
eacc2d6402
Restructure how WeakMap is implemented
...
Use an interface.
Use a provider/supplier to avoid loading more onto the bootstrap classpath.
2018-08-08 16:54:44 +10:00
Tyler Benson
5e55defeb3
Fix bootstrap classpath.
2018-08-07 17:11:42 +10:00
Tyler Benson
847484cd47
Use WeakConcurrentMap
...
Instead of `Collections.synchronizedMap(new WeakHashMap<>())`.
2018-08-06 14:14:57 +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