Commit Graph

410 Commits

Author SHA1 Message Date
Andrew Kent 4fffb61a32 Enable bootstrap instrumentation and helper injection. 2018-03-09 14:31:48 +10:00
Tyler Benson c99f10c0d2 Decouple trace flush from collection
Wait until all spans are finished or garbage collected before reporting trace.
2018-03-09 14:31:48 +10:00
Tyler Benson f31632be33 Remove deprecated usage. 2018-03-09 14:31:48 +10:00
Tyler Benson 5d1297f125 Extract a trace out to a specific class
Rather than it just be a list of spans…
This allows for tracking of if the trace was reported or not, and in the future to do so independently of finishing the span.
2018-03-09 14:31:48 +10:00
Tyler Benson 9b1d454eb9 Combine Threadlocal and RefCounting into single Scope
Also added additional tests.
2018-03-09 14:31:48 +10:00
Andrew Kent 5ffd2142e9 Set max stack size in bytebuddy exception handler 2018-03-07 13:14:41 -05:00
Andrew Kent b2af7491a8 Remove Jackson from AWS Helper class 2018-03-02 13:01:31 -05:00
Tyler Benson 4c66bc8ed2 Use nanotime for additional clock resolution
If a start or stop timestamp on a span is provided, the nanotime is ignored.
2018-02-23 13:13:34 +10:00
Tyler Benson 163b285868 Rename to jedis-1.4 since that’s the earliest working version
Also change instrumentation binding for better coverage.
2018-02-23 13:04:46 +10:00
Tyler Benson f4d2e6f600 Merge branch 'master' into jedis 2018-02-22 16:44:44 +10:00
Tyler Benson 574ba6d954
Merge pull request #237 from DataDog/tyler/set-timeout
Set timeouts on all the tests.
2018-02-22 13:16:04 +10:00
Tyler Benson 903248ddf2 Set timeouts on all the tests. 2018-02-21 12:09:57 +10:00
Tyler Benson a3a70e6ea3 Remove unneeded dependency on dd-trace-ot. 2018-02-21 12:08:05 +10:00
gihad 44dd384648 reusing declared values to make tests more roboust 2018-02-18 08:38:47 -05:00
gihad 692b6e7508 removed tabs for spaces 2018-02-18 08:24:54 -05:00
gihad 3613b9bd7d removed unused import 2018-02-17 22:35:45 -05:00
gihad 7c42e2e791 Added jedis instrumentation integration tests with embedded redis 2018-02-17 21:30:18 -05:00
Andrew Kent c118e1b73d Move SpringBootBasedTest to package folder. 2018-02-16 13:42:27 -08: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
Andrew Kent 1820fbcbfd Bootstrap delegation for wildfly/jboss 2018-02-15 19:17:19 -08:00
Andrew Kent d0982ada9d Skip unsafe classloaders. 2018-02-15 19:17:19 -08:00
Andrew Kent 4a1db505db Enhance logging and cleanup. 2018-02-15 19:17:19 -08:00
Andrew Kent dd19b07017 Spock classloading tests 2018-02-15 19:17:19 -08:00
Andrew Kent a692d42d3c Move DatadogClassloader to bootstrap 2018-02-15 19:17:19 -08:00
Andrew Kent a28a7abd4e Run api classes on bootstrap and core agent on custom classloader 2018-02-15 19:17:19 -08:00
Andrew Kent cfef64b026 Reorganize dd-java-agent subprojects 2018-02-15 18:55:02 -08:00
Tyler Benson c9da16f334 Add resource naming instrumentation for jax-rs 2018-02-14 19:18:01 +10:00
Gihad Murad fb7a81c2bd Removed unused tag, extended Instrumenter.Configurable (disabled by default) 2018-02-13 17:56:36 -05:00
Gihad Murad 7e82985d3c Merge branch 'master' into jedis 2018-02-13 11:58:14 -05:00
Tyler Benson 3ec70ac026 Add instrumentation for spring error handling
Also add additional tests for spring boot
2018-02-13 09:07:53 +10:00
Tyler Benson 1069922233 Add additional tags for aws requests 2018-02-08 15:12:17 +10:00
Tyler Benson 3e57a7a7ea Move servlet tests to individual modules. Fix servlet 2 instrumentation.
Turns out we weren’t actually servlet 2 compatible.  That should be fixed now.  Unfortunately it appears servlet 2 also doesn’t expose the http response code, so we aren’t able to set it as a tag without custom instrumentation for each framework.

I also removed our log4j2 stuff since we’re using logback.
2018-02-08 09:27:04 +10:00
Tyler Benson 1bfceb0d53 Use Field.ERROR_OBJECT instead of string 2018-02-07 12:02:10 +10:00
Andrew Kent b557776bcf
Merge pull request #217 from DataDog/tyler/ipv4-string
Use string instead of int representation for IPv4
2018-02-06 09:25:20 -08:00
Tyler Benson 0ca6082a6e Use string instead of int representation for IPv4 2018-02-06 17:30:44 +10:00
Tyler Benson a311d5f57d Change AWS instrumentation to use constructor
Instead of requiring the builder.
2018-02-06 15:01:50 +10:00
Tyler Benson 7d28a32fba Allow instrumentation to be disabled
By default, instrumentation is enabled, and can be disabled by default by overriding the `defaultEnabled` method. Instrumentation can also be disabled individually or enabled when default is disabled.
2018-02-06 11:20:05 +10:00
Andrew Kent bff9ae2f4e Disable Kafka Instrumentation 2018-02-05 10:42:48 -08:00
Gihad Murad 1d35938996 Merge branch 'master' into jedis 2018-02-05 13:00:13 -05:00
Gihad Murad cef86291e3 Added Redis instrumentation via Jedis client 2.9 and changed spring-boot-jdbc to spring-boot-jdbc-redis 2018-02-05 12:59:42 -05:00
Andrew Kent d703095717 Patch getLogger calls to safe logger. 2018-02-04 12:09:11 -08:00
Tyler Benson 4314f71ab7 Kafka and Kafka Streams instrumentation
This includes propagation and traces for producers and consumers.
2018-02-01 20:04:40 +10:00
Andrew Kent 6f088ddd53 Remove trace decorator yaml config 2018-01-31 16:13:41 -08:00
Andrew Kent 8d53e4703d Set span.type for all integrations. 2018-01-31 16:13:41 -08:00
Andrew Kent 228f896bb6 Move default decorators to code 2018-01-31 13:18:28 -08:00
Andrew Kent 13b0df8aca Apply default decorators in unit tests 2018-01-31 12:22:43 -08:00
Andrew Kent 7920cc9d8e Set span.type tag 2018-01-31 12:22:43 -08:00
Tyler Benson 13c774e7ff Fix AWS integration
Handler was being added on builder return, which was too late.  It appears it would have also failed if an existing handler resulted in a unmodifiable list to be returned.
2018-01-31 10:18:51 +10:00
Tyler Benson 29ffdf7354 Change escape sequence since SQS doesn’t like $ characters. 2018-01-31 08:14:02 +10:00
Tyler Benson c1f73c194e Prevent headers from being added for AWS client calls 2018-01-30 11:20:17 +10:00
Andrew Kent 140c3add96
Merge pull request #205 from DataDog/ark/aws_base_instrumentation
aws base instrumentation
2018-01-25 17:55:41 -08:00
Andrew Kent d731789d38 Remove copy-paste from spring and trace instrumentation 2018-01-25 09:47:14 -08:00
Andrew Kent 839ed9f0cb Use a thread-safe synchronized weak hash map. 2018-01-25 09:47:14 -08:00
Andrew Kent f5d1eef72a Match All AWS Builder subclasses.
Match All AWS Builder subclasses. Also fix bug of potentially
replacing configure request handlers when we add the dd request handler.
2018-01-25 09:39:43 -08:00
Andrew Kent 09d4cc4f6d Use datadog prefix to configure test logger. 2018-01-24 14:01:23 -08:00
Tyler Benson ce9e5dd3de Reenable java 7 and 9 CI
Also try to make it so builds can be rerun independently by not using the workspace.
2018-01-23 15:54:05 -05:00
Tyler Benson 6fbe494934 Exclude tests that are Java 9 incompatible. 2018-01-23 14:59:10 -05:00
Andrew Kent c056a910c2
Merge pull request #199 from DataDog/ark/fix_perftest
Perf test main class rename
2018-01-23 08:58:23 -08:00
Andrew Kent 255309791d Perf test main class rename 2018-01-22 17:54:11 -08:00
Tyler Benson 9acbe5710e
Merge pull request #198 from DataDog/tyler/update
Update dependencies
2018-01-22 16:47:50 -05:00
Andrew Kent b0737e6a88
Merge pull request #196 from DataDog/ark/log_exception_handler
log exception handler
2018-01-22 12:52:57 -08:00
Ark 2d937d89c8 Exception Handler Tests 2018-01-22 12:19:55 -08:00
Ark 157801d742 Custom ByteBuddy advice exception handler 2018-01-22 12:19:55 -08:00
Tyler Benson 53a575dc74 Update dependencies 2018-01-22 15:08:28 -05:00
Tyler Benson 64d39030e5 Use workflows in Circle to test Java 7 and 8
Java 9 is commented out because there are some test failures that will be investigated later.

Some tests had to be excluded from Java 7 because they don’t have a Java 7 compatible version.
2018-01-22 13:46:50 -05:00
Tyler Benson f0d333c2ec Defend against potential NPEs
If `HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE` happens to be missing.
2018-01-19 15:48:12 -05:00
Tyler Benson 111c5ee689 Fix wrong class name being injected 2018-01-17 15:09:42 -05:00
Andrew Kent 11a2d3bdd4 Fix helpers for httpclient, and servlet3 2018-01-16 16:10:28 -05:00
Tyler Benson d68b9703fb Ensure helper classes are injected in a fixed order
This is important if they depend on each other. If the child loads first, the parent could get loaded on the wrong classloader before itself gets injected.
2018-01-16 15:12:34 -05:00
Tyler Benson b2b61e0c8c Changes required for supporting OT 0.31.0
Also updates all the contrib versions that we currently depend on to their 0.31.0 supporting versions.
2018-01-16 09:52:28 -05:00
Tyler Benson 6d3d88987b Rename dd-trace-annotations to dd-trace-api
And move DDTags over to it.
Move some `datadog.trace.api` classes over to `datadog.trace.common`.
Other misc renaming.
2018-01-09 10:07:36 +10:00
Tyler Benson becf2a5862 Lots of renaming
Module:
dd-trace -> dd-trace-ot

Packages:
Standardize on `datadog.trace` and `datadog.opentracing` as the package prefixes.
2018-01-09 10:02:06 +10:00
Tyler Benson eeb17c4522 Move @Trace and JDBC instrumentation to individual modules 2018-01-04 16:20:26 +10:00
Andrew Kent f1fa1370f9
Merge pull request #180 from DataDog/ark/macro-benchmarks
macro benchmarks
2018-01-02 14:04:13 -08:00
Tyler Benson 596a1abc65 Fix types for Intellij
Idea doesn’t like the vararg representation of `TypeDescription.Latent`.  Using an empty list is the same behavior and doesn’t get the errors.
2018-01-03 07:27:46 +10:00
Andrew Kent 905bdb1cc1 sleepTimeMS -> workTimeMS 2018-01-02 12:17:18 -08:00
Andrew Kent 9de6417f87 Allow for run-perf-test.sh custom settings. 2018-01-02 12:17:18 -08:00
Andrew Kent feab10ad9f Update benchmark-integration instructions 2018-01-02 12:17:18 -08:00
Andrew Kent ef3ba8be60 Move dd-java-agent-perftest to dd-java-agent subproject. 2018-01-02 12:17:18 -08:00
Andrew Kent 1a80e4457d Remove unused listener option 2017-12-28 09:46:58 -08:00
Andrew Kent d315f43dad Remove AgentTestRunner custom classloader.
BytebuddyAgent install already handles class retransformation, make
the custom classloader redundant.
2017-12-28 09:46:58 -08:00
Andrew Kent 1c08933bc7 AgentTestRunner doc 2017-12-28 09:46:58 -08:00
Andrew Kent d0658085bf Convert Cassandra IntegrationTest to AgentTestRunner+spock 2017-12-28 09:46:58 -08:00
Andrew Kent ca574071ff New AgentTestRunner to auto-instrument spock tests 2017-12-28 09:46:58 -08:00
Andrew Kent 9d79531f59 Move bytebuddy agent setup into tooling 2017-12-28 09:46:08 -08:00
Andrew Kent 99442cdca7 Agent Testing Project 2017-12-28 09:46:08 -08:00
Andrew Kent 981e660b5e Only add integration dependencies when building agent shadowJar 2017-12-28 09:46:08 -08:00
Andrew Kent 5701601ad9 Fix potential flicker for jms2 test 2017-12-27 18:01:11 -08:00
Tyler Benson eca6d89591 Fix flickering test. 2017-12-26 12:39:09 -08:00
Tyler Benson 5dda6844a5 Change point where servlet instrumentation is applied
This new point will capture responses returned by filters, not just the servlet target.
2017-12-26 12:27:39 -08:00
Tyler Benson 02460060bc Misc cleanup
Remove out of date “async-tracing” example since it’s more about byteman and no longer relevant.

Minor changes to improve the code test coverage…
2017-12-21 16:31:03 -08:00
Tyler Benson 4822c19c5d Remove legacy config references. 2017-12-21 16:28:18 -08:00
Andrew Kent 5acd650efe
Merge pull request #174 from DataDog/ark/instrumentation_modules
Move Helper Classes into their specific instrumentation modules
2017-12-19 17:24:19 -08:00
Tyler Benson d6056a3c27 Fix jersey servlet instrumentation which overrides method
Jersey doesn’t seem to delegate to the original method on HttpServlet, which causes those methods to not be traced properly.

This is impacting dropwizard applications which uses Jersey with embedded Jetty.
2017-12-19 16:53:58 -08:00
Andrew Kent faf63bac9d Don't load classes on agent classloader during injection 2017-12-19 16:52:10 -08:00
Andrew Kent 75edd2bee4 Initialize AgentVersion classes in global tracer init 2017-12-19 16:00:03 -08:00
Andrew Kent f5ecd47379 Remove dead code 2017-12-19 09:06:38 -08:00
Andrew Kent e9b6f5278d Initialize GlobalTracer in TracingAgent 2017-12-19 09:06:38 -08:00
Andrew Kent 069f481884 Don't inject helpers into the same classloader twice 2017-12-18 16:44:12 -08:00