Commit Graph

21 Commits

Author SHA1 Message Date
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
Nikolay Martynov 42cece67c2 Fix namespace clashes
Using `datadog.trace.agent` to hold agent class causes problems due to
shadowing into this package of other classes.
2019-11-06 13:58:20 -05:00
Nikolay Martynov 15c1e67334 Fix agent on latest zulu8
The problem was that on zulu8 loading OkHttp touches JFR which in turn
touches log manager - which would break things like JBOSS.

The fix is to delay installing agent (and writer) until log manager
things have settled down - in way similar to jmxfetch.

Unfortunately for 'main' agent this turns out to be more involved
because of classloader shenanigans.
2019-11-06 10:09:50 -05:00
Tyler Benson 757961e014 Initial implementation of agent internal API. 2019-10-15 15:40:44 -07:00
Laplie Anderson 584f181abb Fix OSGi bootstrap delegation property 2019-10-07 18:40:05 +02:00
Laplie Anderson 21b12328fa OSGI bootstrap delegation 2019-07-31 11:32:20 -04:00
Tyler Benson 82f50e22b7
Merge pull request #811 from DataDog/tyler/hystrixobservable
Add support for HystrixObservableCommand
2019-05-02 09:47:09 -07:00
Tyler Benson 2c5ae9f3b1 Make OSGi instrumentation more generic
This should help it work with felix.

Also reduce log noise.
2019-04-30 12:38:54 -07:00
Tyler Benson 6414de82d9 Add support for HystrixObservableCommand
This change is slightly breaking for existing hystrixCommand code since the resource name changes from run->execute and getFallback->fallback.  The fallback span is also now a child of the execute span.
2019-04-29 12:04:27 -07: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 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 4dc3528097 Add post-match hook to default instrumenter api 2018-12-19 17:07:43 -08: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
Andrew Kent 02a3e6a5d3 New Instrumentation API 2018-07-06 17:17:32 -04:00
Tyler Benson cd289308bb Remove timeouts.
Not helping as much as was hoped.  Causing extra noise in CI.
2018-04-30 11:10:18 +10:00
Andrew Kent 3eac216a04 Use defaultTransformers in all instrumentation 2018-03-20 15:59:11 -07:00
Andrew Kent 84fe1fc0e3 Organize bootstrap and agent classes by known prefix. 2018-03-15 12:17:03 -07:00
Andrew Kent 878d92f5b2 Test under custom classloader 2018-03-15 12:17:03 -07:00
Tyler Benson 903248ddf2 Set timeouts on all the tests. 2018-02-21 12:09:57 +10:00
Andrew Kent c6e883e042 Move bootstrap prefixes to classloader matcher 2018-02-15 19:17:19 -08:00
Andrew Kent 64e2173bf7 Set bootstrap delegation for osgi classloading 2018-02-15 19:17:19 -08:00