Commit Graph

99 Commits

Author SHA1 Message Date
Lev Priima a5a5743f7c
WeakCache instead of WeakMap (#1256)
WeakCache abstraction in addition to WeakMap
2020-03-20 00:23:07 -07:00
Anubhaw Arya 0344cff386 Remove hostname and port from HttpClientDecorator 2020-03-13 10:47:10 -07:00
Laplie Anderson 7805f844f4
Merge pull request #1315 from DataDog/landerson/threadpoolexecutor-helper
Move ThreadPoolExecutor helper to bootstrap
2020-03-13 12:10:58 -04:00
Laplie Anderson 7cd76ed68b Move ThreadPoolExecutor helper to bootstrap 2020-03-12 18:20:03 -04:00
Laplie Anderson 68f279f8fd Replace OT tags with api tags 2020-03-12 16:49:03 -04:00
Laplie Anderson 8332e177c2 Move decorator tests to bootstrap 2020-03-11 18:41:29 -04:00
Laplie Anderson 6cd530a541 Move decorators to bootstrap 2020-03-11 18:41:29 -04:00
Laplie Anderson 97b0e7a21f Move concurrent helpers to bootstrap 2020-03-11 18:37:03 -04:00
Nikolay Martynov 6ff723e191 CR changes 2020-03-02 12:25:20 -05: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
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 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 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
Lev Priima 5265a43c6d Reduce use of Thread::setContextClassLoader 2020-02-06 22:53:04 -05:00
Laplie Anderson 64ed09d76c
Merge pull request #1179 from DataDog/landerson/internal-jar-memory
Use streams directly in DatadogClassLoader
2020-01-16 10:51:42 -05:00
Laplie Anderson 607c8f277e Don't copy to byte[], return input stream directly 2020-01-15 13:38:44 -05:00
Laplie Anderson 68ed1da9c6 Don't call `map.get()` in the `put(..)` case 2020-01-15 12:41:01 -05:00
Laplie Anderson a0b1cd4a75 WeakMap computeIfAbsent 2020-01-15 12:26:15 -05:00
Pawel Chojnacki f71ba14016 [rmi] use simple thread local for propagating context
+ add more documentation
2019-12-23 13:25:14 +01:00
Tyler Benson 96edbe8b8a Add better exception handling in Agent initialization
An invalid statsd hostname causes an exception for jmxfetch.  This should be an error, but not prevent the app from starting.

Also improved log variable name consistency.
2019-12-17 14:15:42 -08:00
dougqh 022257ee55 Fixing resource leak
To check for existence, switching from getResourceAsStream to getResource
2019-11-18 10:52:23 -05:00
Nikolay Martynov 2c4422aa04 Upgradle to gradle 6.0 2019-11-12 16:26:46 -05:00
Nikolay Martynov 8f80a42c4d Do not delay tracer on OpenJDK8 with JBOSS 2019-11-07 13:45:56 -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 425156115c Add new integration for Servlet Filters, HttpServlet, and RequestDispatcher
Disabled by default, and only creates a span if existing trace detected.

To enable all of them:
* System Property: `-Ddd.integration.servlet.enabled=true`
* Environment Variable: `DD_INTEGRATION_SERVLET_ENABLED=true`

(They have independent configs as well.  If needed, view the source below.)
2019-10-25 14:47:48 -07:00
Tyler Benson fa80fee15d Refactor JAX-RS Annotation and Spring Controller/Handler Instrumentation
For spring:
* Move more logic to the decorator.
* Use a fixed operation name, but set the resource name.
* Rename the root span instead of the parent span (If there are other spans in between this could make a difference.)  Not sure what impact this would have if multiple controllers are called (ie, forward/include).

For Jax-rs:
* Rename the root span instead of the parent span (same concern as above with spring)
2019-10-25 10:19:25 -07:00
Trask Stalnaker 002db5a170 Introduce Tags class
To remove dependency on OpenTracing Tags class.
2019-10-24 21:04:10 -07:00
Tyler Benson 7b6737f106 Make AgentTracer constructor private. 2019-10-15 16:12:48 -07:00
Tyler Benson 61151d425a Changes requested in review 2019-10-15 16:03:02 -07:00
Tyler Benson 757961e014 Initial implementation of agent internal API. 2019-10-15 15:40:44 -07:00
Laplie Anderson 5994fa8734 Change packaging of internal jars to be exploded in a subfolder 2019-08-29 16:04:10 -04:00
Laplie Anderson 9c5766162a Add test for ClassNotFound creating a span bug 2019-08-23 13:04:56 -04:00
Tyler Benson 8c1dbfe7cb Make Muzzle handle cleaner thread properly. 2019-08-19 17:27:01 -07:00
Nikolay Martynov b0ff861392 Do not trace openConnection for Datadog ClassLoader 2019-08-14 16:46:23 -04:00
Laplie Anderson 548e4ed6e4
Merge pull request #934 from DataDog/landerson/remove-temp-jars
Eliminate temporary jars for instrumentation, jmxfetch, and bootstrap
2019-08-06 18:32:41 -04:00
Laplie Anderson a9d0d2cbbe Use CodeSource instead of javaagent arg
Check both TracingAgent.class and DatadogClassloader.class for code source
2019-08-05 10:41:05 -04:00
Laplie Anderson 273feafa94 Use the bootstrapProxy to load jars. Better bootstrap url algo 2019-07-30 19:50:16 -04:00
Laplie Anderson cf98110991 JMXFetch loading threw permission errors 2019-07-30 16:56:49 -04:00
Laplie Anderson c41536cbe2 Fix failing tests
Add TracingAgent to list of bootstrap class
Fix renaming tests
Fix JMXFetch path splitting
2019-07-30 15:27:47 -04:00
Laplie Anderson a1f8cad2e8 Tooling and jmxfetch temp jars removed
Enhanced the DatadogClassloader to work with jars inside other jars.  No need to create the jars in a temp directory anymore
2019-07-29 17:01:55 -04:00
Luca Abbati 0ff56b0a9f
Improve tests readability moving common instance to test class 2019-07-22 11:19:13 +02:00
Luca Abbati 3817e76130
Apply doubled-check locking + same approach to attributes definition for netty-4.1 2019-07-22 11:15:33 +02:00
Luca Abbati 95a963a364
Fix build with additional WeakHash map implementation 2019-07-19 17:05:40 +02:00
Luca Abbati edacd7a41d
Refactor weak hash map to be able to reuse functionalities 2019-07-19 16:18:38 +02:00