Commit Graph

199 Commits

Author SHA1 Message Date
Tyler Benson d235618a6e Add instrumentation for Java’s UrlConnection
For HttpUrlConnection, trace propagation headers are added to the outgoing request.

Due to the awkward design of the API, the ability to instrument in a natural way was limited, thus the main points instrumented are the get{Input,Output}Stream methods.
2018-06-06 09:12:48 +10:00
Tyler Benson de74eb1938 Add additional metadata to ES client calls. 2018-05-25 13:58:44 +10:00
Tyler Benson 0cf8fef8d8 Elasticsearch Instrumentation 2018-05-23 11:29:13 +10:00
Tyler Benson 024d414844 Move Apache HttpClient tests to instrumentation
And add latest test.
2018-05-18 12:01:12 +10:00
Tyler Benson 69ee39bfc2
Merge pull request #317 from DataDog/tyler/tagged-headers
Add setting for collecting headers as tags during extraction
2018-05-15 10:43:54 +10:00
Tyler Benson c011eb0fbd
Merge pull request #320 from DataDog/tyler/servlet-context-naming
Name service based on servlet context
2018-05-15 10:27:06 +10:00
Tyler Benson dc814aeb6d Fix tests. 2018-05-11 15:19:30 +10:00
Tyler Benson 6767785e0f Try cleaning more than once in test. 2018-05-11 14:27:44 +10:00
Tyler Benson 46878d24d3 Name service based on servlet context
This only applies if a service name hasn’t been set or is empty.

This is particularly useful for environments that deploy multiple war files to the same app server.
2018-05-11 13:59:03 +10:00
Tyler Benson 97b3e537bd Add shutdown hook to span-cleaner thread 2018-05-11 13:55:05 +10:00
Tyler Benson 891b46f0d1 Add setting for collecting headers as tags during extraction 2018-05-11 09:32:07 +10:00
Tyler Benson d5d24c50c7 Replace @Unroll’s with a rule to always unroll. 2018-05-10 15:24:59 +10:00
Tyler Benson 2595ca5128 Refactor decorators and add service name mapping 2018-05-08 16:13:48 +10:00
Tyler Benson 9a52303376 Apply jacoco to every java project
Some projects have ignores/whitelists, but generally coverage is pretty high.

AFAIK, this doesn’t really capture instrumentation test coverage though.
2018-05-04 16:23:32 +10:00
Tyler Benson f35e2e6ebe Remove various warnings and other cleanup
Also upgrade some plugins.
2018-05-04 14:05:06 +10:00
Tyler Benson 7c4d42ef8a Add additional test task for testing latest versions of a dependency 2018-05-04 14:04:30 +10:00
Tyler Benson 3fa0eb0296 Remove dependency on guava for dd-trace-ot 2018-05-03 16:11:15 +10:00
Tyler Benson 63d308e50d Misc cleanup/minor changes 2018-05-01 10:24:14 +10: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
Tyler Benson 3db2d654f1 Fix spark instrumentation
and rebase off master.
2018-04-26 17:01:45 +10:00
Andrew Kent 64ce961c32 Debug logs for hot paths 2018-04-23 11:06:45 -07:00
Andrew Kent c3feb3b878
Merge pull request #290 from DataDog/ark/pending_expire
Handle spans registered after trace is written
2018-04-23 10:00:38 -07:00
Andrew Kent bb69666e9f Handle spans registered after trace is written
Decrement the pending trace count when spans are registered after a
trace writes. Log certain pending trace messages at debug.
2018-04-18 12:37:14 -07:00
Tyler Benson e7604bfd3f Report X-Datadog-Trace-Count header with traces
Also remove unused services endpoint code.
2018-04-18 10:27:51 +08:00
Andrew Kent c7cf1cf36d
Merge pull request #282 from DataDog/ark/async-refactor
Toggleable Async Propgation on the trace context
2018-04-17 09:44:41 -07:00
Andrew Kent 5f5d654a4c
Merge pull request #288 from DataDog/ark/agent_priority_sampling
Move PrioritySampling flags to dd-trace-api project
2018-04-17 09:26:45 -07:00
Andrew Kent 9bcd5677ed
Merge pull request #287 from DataDog/ark/logging
Logging
2018-04-17 09:26:32 -07:00
Tyler Benson c796260a39
Merge pull request #285 from DataDog/tyler/build-workspace
Build with Java 8, but run tests with other JDKs
2018-04-17 13:14:54 +08:00
Andrew Kent 32272a4aa7 Move PrioritySampling flags to dd-trace-api project. 2018-04-16 12:46:26 -07:00
Andrew Kent 364b3e999a Remove warning from mongo listener. Add injection debug logging. 2018-04-16 10:34:46 -07:00
Tyler Benson 001e59e0cc Build with Java 8, but run tests with other JDKs
Use workspaces to persist build between jobs.
2018-04-16 14:36:38 +08:00
Andrew Kent 03b96ca567 Increase agent writer max trace limit 2018-04-11 14:35:30 -07:00
Andrew Kent d594d6e8db Don't create continuations when async propagation is off 2018-04-11 13:32:58 -07:00
Andrew Kent a0a11a51d0 Use ScopeManager to enable/disable low level async instrumentation. 2018-04-11 13:32:58 -07:00
Andrew Kent 0d7aa022db Refactor ContinuableScope 2018-04-11 13:32:58 -07:00
Andrew Kent 01c707787f Fix name: timestampMillis -> timestampMicroseconds 2018-04-10 16:53:58 -07:00
Tyler Benson f05ddaa19d
Merge pull request #283 from DataDog/tyler/span-times
Add startTime and Duration methods to MutableSpan interface
2018-04-09 23:46:23 +08:00
Tyler Benson fcb1e1c564 Add startTime and Duration methods to MutableSpan interface 2018-04-09 23:25:35 +08:00
Tyler Benson 79a9826863 Add the errorprone compiler. 2018-04-04 20:48:28 +08:00
Tyler Benson 5a61124cae Add tests against an actual trace agent. 2018-03-28 22:31:15 +08:00
Tyler Benson 19b94da7bb JAX-RS Client Tracing 2018-03-20 08:54:09 +08:00
Andrew Kent 783a6d88e2 Increase Test timeouts 2018-03-15 13:23:57 -07:00
Andrew Kent 10e12a666a Use builtin decorators for every DDTracer 2018-03-13 12:46:48 -07:00
Andrew Kent b5b38ee4b1 Mark all http status codes 5xx as an error. 2018-03-13 12:46:48 -07:00
Tyler Benson 0fbec69b6d
Merge pull request #253 from DataDog/tyler/traceinterceptor
Implement the TraceInterceptor API
2018-03-13 08:30:01 +10:00
Andrew Kent 428e304164 Rename ContextPropagator to TraceScope 2018-03-12 10:29:50 -07:00
Andrew Kent 21180530ea Remove opentracing from dd-trace-api 2018-03-09 11:50:39 -08:00
Andrew Kent 9a83413141 Executor Instrumentation for Scala 2018-03-09 11:50:39 -08:00
Tyler Benson 286e9d2d00 Add instrumentation to catch additional classloaders.
Still doesn’t work with Spring Boot because the way they structure their Jars.
2018-03-09 14:32:41 +10:00
Tyler Benson d073cd8a17 Initial pass at TraceInterceptor API 2018-03-09 14:32:41 +10:00
Tyler Benson f57faba5db Allow closing of continuation explicitly
to allow a completed trace to be reported more timely.
Continuation is closed when the returned scope is closed, but can also be closed directly.
2018-03-09 14:31:48 +10:00
Tyler Benson 087b2e7298 Fix tests 2018-03-09 14:31:48 +10:00
Tyler Benson 5c3e4c91fd Rename to PendingTrace 2018-03-09 14:31:48 +10:00
Tyler Benson 2b1c9aabfb Force traces to wait Continuation dereferencing before reporting
If all the current spans on a trace complete before a continuation can be activated, previously the trace could have been reported, not allowing additional spans to be added.

This PR changes it so any created continuations must be dereferenced (GC’d) before allowing the trace to be reported.
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 5cbc11415d Move SpanFactory to correct package. 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 8da3a0492d Improve threadsafety and organization 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
Tyler Benson 27c1d71504 Introduce ScopeContext and ReferenceCountingScopes 2018-03-09 14:31:48 +10:00
Jon Mort f78c290b40 Closes #222: Introduce a ScopeManager property 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
Tyler Benson 759fb4e815 Configure tags to be added to every span 2018-03-01 17:19:52 +10:00
Tyler Benson ac1b57d7a2 Fix test for v0.4 endpoint
Agent returns an error if no content sent, so test was failing.  Need to send empty content for test to succeed.
2018-02-26 13:50:32 +10: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 903248ddf2 Set timeouts on all the tests. 2018-02-21 12:09:57 +10:00
Tyler Benson c1224eaa9f Set short timeouts for api test to prevent startup delays
Since endpointAvailable is called on construct, this can happen in premain when running with the agent. I included a simple retry just in case…

Not sure in what case the trace agent would respond so slowly…
2018-02-20 17:43:26 +10:00
Andrew Kent 0864f81e45 whitelist ConfigUtils from jacoco 2018-02-15 18:50:18 -08:00
Tyler Benson c9da16f334 Add resource naming instrumentation for jax-rs 2018-02-14 19:18:01 +10:00
Tyler Benson 0299a7b9ae Remove unused config utils file. 2018-02-13 09:07:53 +10:00
Tyler Benson 9fc5cf6a4b Add exception for version segments in URLs
This seems like a common enough segment and useful to not remove.
2018-02-09 12:54:13 +10:00
Tyler Benson 0b4bf16f97 Remove configuration of ResourceName Decorator
Improve name sanitizing to reduce high cardinality issues.
2018-02-08 17:26:04 +10:00
Tyler Benson 4958a3d306 Fix dependency problem in dropwizard example
There was an incompatible mix of jackson dependencies which caused the app to not start up.  Changed the tracer client to use an old version, but allow the agent to still use a newer version (since it is shadowed).
2018-02-07 12:41:18 +10:00
Tyler Benson 1bfceb0d53 Use Field.ERROR_OBJECT instead of string 2018-02-07 12:02:10 +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 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 7920cc9d8e Set span.type tag 2018-01-31 12:22:43 -08:00
Andrew Kent 919eefe818 Write json for loggingwriter 2018-01-31 12:22:43 -08:00
Tyler Benson 6fbe494934 Exclude tests that are Java 9 incompatible. 2018-01-23 14:59:10 -05:00
Tyler Benson 9acbe5710e
Merge pull request #198 from DataDog/tyler/update
Update dependencies
2018-01-22 16:47:50 -05:00
Tyler Benson 92b6cc86f6 Move deprecation for 0.31.0 2018-01-22 16:42:21 -05:00
Tyler Benson b379cf9d8c
Merge pull request #191 from DataDog/tyler/java-versions
Use workflows in Circle to test Java 7 and 8
2018-01-22 15:51:52 -05:00
Ark cfe1224924 Make priority sampling fields volatile 2018-01-22 11:35:36 -08:00
Andrew Kent c1f9f4fc5d Remove priority sampling logic from DDTracer 2018-01-22 11:35:36 -08:00
Andrew Kent 3a76347a21 Remover RateSampler and sampler config options 2018-01-22 11:35:36 -08:00
Andrew Kent c7447bfadb Priority Sampling flag in DDSpanContext 2018-01-22 11:35:36 -08:00
Andrew Kent 2695157b92 Priority Sampling Config 2018-01-22 11:35:36 -08:00
Andrew Kent aa5356837d RateByServiceSampler 2018-01-22 11:35:36 -08:00
Andrew Kent 1fc7950ee9 Support v4 api with fallback to v3 2018-01-22 11:35:36 -08:00
Andrew Kent 7b03f4e91f priority sampling values 2018-01-22 11:35:36 -08:00
Andrew Kent 9f5f2e9a1d Convert Trace Junit tests to Spock 2018-01-22 11:35:36 -08: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 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