Commit Graph

73 Commits

Author SHA1 Message Date
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
Nikolay Martynov 63e0c0f032 Support Unix Domain Socket proxy to send traces 2019-03-15 11:36:44 -07:00
Tyler Benson 4e9449db81 Migrate Jax-rs annotation instrumentation to Decorator 2019-02-27 09:40:08 -08:00
Tyler Benson c46909e59f Migrate JDBC instrumentation to Decorator 2019-02-26 11:16:35 -08:00
Nikolay Martynov 9d830a3dab Do not close parent scope when closing continuation in concurrent execution state 2019-02-08 20:13:32 -05:00
Tyler Benson 6d7415fed2 Don’t run coverage on projects that use shadow
It was breaking on dd-java-agent where it has duplicate classes across different jars.  These projects are excluding everything anyway.
2019-01-04 15:25:36 -08:00
Andrew Kent 0b92413d4a Move JvmBootstrapTest into a fork inside a groovy test 2018-12-12 20:17:48 -08:00
Nikolay Martynov ad98ebc01f Add some comments and some other minor CR tweaks 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
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
Nikolay Martynov e83c379992
Merge pull request #557 from DataDog/mar-kolya/add-lost-jdbc-statement-logging
Add logging in jdbc instrumentation when we cannot unwrap connection
2018-10-31 15:55:03 -04:00
Nikolay Martynov 8a066de772 Add logging in jdbc instrumentation when we cannot unwrap connection 2018-10-31 13:38:37 -04:00
Andrew Kent cc27f1507e Javadoc for map-backed context store. Type info on context store api 2018-10-26 13:41:24 -07: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
Tyler Benson 432ce89a07 Add assertTraces to AgentTestRunner with implied argument
This will also help with auto complete when writing tests.
2018-10-15 10:19:00 +10:00
Andrew Kent e28ee5f9e8 Add timeout to datadog classloader test 2018-08-20 11:10:08 -07:00
Andrew Kent 2d8102c8f5 Register Datadog classloader as parallel capable 2018-08-17 15:42:49 -07:00
Andrew Kent 937e9a6cef Add more methods to PatchLogger 2018-08-15 09:49:37 -07: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 b220309a68 PR review changes. 2018-08-10 12:23:13 +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 9b00a27dce add javadoc and comparison 2018-08-07 12:42:14 +10:00
Tyler Benson 847484cd47 Use WeakConcurrentMap
Instead of `Collections.synchronizedMap(new WeakHashMap<>())`.
2018-08-06 14:14:57 +10:00