Commit Graph

265 Commits

Author SHA1 Message Date
Richard Startin 4e836f1c72 Replace remaining named disjunctions with namedOneOf or namedNoneOf (DataDog/dd-trace-java#1584) 2020-06-23 14:08:45 -07:00
Richard Startin 0fad251165 Introduce matcher for membership of a set of names (DataDog/dd-trace-java#1583) 2020-06-23 14:08:45 -07:00
Laplie Anderson f628f02de6 Do not attempt to instrument websocket upgrade handlers (DataDog/dd-trace-java#1567) 2020-06-23 14:08:45 -07:00
Richard Startin a252985562 Cache span names derived from class and method names (DataDog/dd-trace-java#1562) 2020-06-23 14:08:44 -07:00
Brian Devins-Suresh 07c64f15e1 Update play-2.6 instrumentation to support Play version 2.8.x (DataDog/dd-trace-java#1521) 2020-06-23 14:08:44 -07:00
Lev Priima da15d0de64 ApacheHttpClientRedirectInstrumentation copy headers from original request to redirect if original redirect headers were empty (DataDog/dd-trace-java#1539) 2020-06-23 14:08:44 -07:00
Tyler Benson 88c14dcab2 Add some tests for Java CompletableFuture (DataDog/dd-trace-java#1546) 2020-06-23 14:08:44 -07:00
Anuraag Agrawal 918d3913e3
Populate user-agent in HTTP clients. (#540) 2020-06-22 21:13:12 -07:00
Trask Stalnaker 126c972864
Optimization for expensive type matcher (#558) 2020-06-22 19:17:34 -07:00
Trask Stalnaker 82a1b35828
Update otel api instrumentation module name (#551)
* Update otel api instrumentation module name

* Remove vbeta subpackage

Co-authored-by: Nikita Salnikov-Tarnovski <gnikem@gmail.com>
2020-06-22 16:42:55 +03:00
Trask Stalnaker 9dcb079aa6
Fix duplicate log capture, part 2 (#554) 2020-06-22 11:13:36 +03:00
Trask Stalnaker f61b316b67
Make Cassandra instrumentation Java 7 compatible (#543) 2020-06-20 16:52:02 -07:00
Trask Stalnaker 9cf0cb6b1e
Fix duplicate log capture (#544) 2020-06-19 08:45:34 +03:00
Anuraag Agrawal 9a2a0b5de9
Add lettuce 5.2 instrumentation that uses lettuce's native tracing functionality. (#535)
* Copy Lettuce 5.0 to start 5.1 instrumentation

* Begin tracing adapter implementation

Co-authored-by: Dustin Neray <dustin.neray@gmail.com>

* Set floor to 5.2 instead

* Move around

* Finish

* Cleanups

* Instrument 5.1+ instead

* Cleanup

* 5.1

* Remove latestDepTest from lettuce-5.0 since we have a newer lettuce-5.1.

* Remove

* Remove package check

* Spotless

Co-authored-by: Dustin Neray <dustin.neray@gmail.com>
2020-06-18 18:22:45 +03:00
Nikita Salnikov-Tarnovski c1c02ac949
Next attempt to extract common logic from instrumentations. (#523)
* Next attempt to extract common logic from instrumentations.

I tried to reduce code repetition in DB client instrumentations, jdbc and mongo ones. This time I experimented with another approach, different from HttpServerTracer. Namely, I have extracted that common `startSpan` method into `DatabaseClientDecorator` itself. The idea is still the same as before, but I wanted to see if we can migrate by smaller steps, reusing much of the existing code and just incrementally reducing public API.

* Extracted separate Tracer after all

* More explicit call depth handling

* Fix format

* More reusable method overloads
2020-06-17 12:08:52 -07:00
Trask Stalnaker 1c2f74d8db
Possible fix for a sporadically failing test (#522)
Co-authored-by: Nikita Salnikov-Tarnovski <gnikem@gmail.com>
2020-06-15 07:55:51 +03:00
Nikita Salnikov-Tarnovski c11835963f
Vert.x instrumentation improvements (#503)
* Support for Vert.x rx-java async tasks

* Use Vert.x route for server span name

* Move reactive Vert.x instrumentation into separate module

* Test fixes

* Format fixes

* Polish

* Fix license header

* Add Vert.x to README
2020-06-13 23:18:30 +03:00
Trask Stalnaker 4a26bd3ce7
Simplify setting of user.principal attribute (#509) 2020-06-13 12:11:03 +03:00
Trask Stalnaker 4b665dcbe2
Changed instrumentation tracer" TRACER.startSpan() to never return `null` (#499) 2020-06-12 16:15:38 -07:00
Richard Startin 57c0aed1fa Use ClassValue to store ThreadLocal call depth (DataDog/dd-trace-java#1528) 2020-06-11 10:14:07 -07:00
Richard Startin 13264b3560 Add record.queue_time_ms to rabbitmq consumer span tags (DataDog/dd-trace-java#1522) 2020-06-11 10:14:07 -07:00
Richard Startin c61034c945 Fix elasticsearch test flakiness (DataDog/dd-trace-java#1513) 2020-06-11 10:14:07 -07:00
Tyler Benson 1b29184e7c Make rootDir usage consistent (DataDog/dd-trace-java#1518) 2020-06-11 10:14:02 -07:00
Tyler Benson f2bf50684a Use Retry.Mode.SETUP_FEATURE_CLEANUP to improve Elasticsearch test flakiness (DataDog/dd-trace-java#1494) 2020-06-11 10:12:11 -07:00
Trask Stalnaker a5128fcd53
Support non-monotonic metrics (#494)
* Support non-monotonic metrics

* Fix check build

Co-authored-by: Nikita Salnikov-Tarnovski <gnikem@gmail.com>
2020-06-11 09:40:25 +03:00
Anuraag Agrawal 2600cb2056
Add missing AWS SDK helper. (#483) 2020-06-09 20:04:22 -07:00
Anuraag Agrawal f13a9c4932
Move client span creation to decorator and automatically suppress creation of neste… (#460)
* Move client span creation to decorator and suppress creation of nested client spans.

* Store subtree client span in context.

* Apply new pattern to AWS V1 SDK instrumentation too, cleanup, and javadoc
2020-06-08 12:01:43 -07:00
Nikita Salnikov-Tarnovski 8ee54389da
Try to fix flaky test by replacing list comparison with set comparison (#480) 2020-06-08 20:00:38 +03:00
Nikita Salnikov-Tarnovski 357fb6e989
Deduplicate servlets (#469)
* Servlet instrumentations unified

* Grizzly migrated

* Fix tests after merge

* Polish and fix tests

* Polish and fix tests

* Muzzle fixes

* Muzzle fixes

* Muzzle fixes

* Test fixes

* One more check fixed

* Stop using SpanWithScope

* Test fix

* Compilation fix

* Apply suggestions from code review

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>

* Update agent-bootstrap/src/main/java/io/opentelemetry/auto/bootstrap/instrumentation/decorator/HttpServerTracer.java

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>

* Polish

* Tracer does not manage scope anymore

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2020-06-08 10:49:58 +03:00
Nikita Salnikov-Tarnovski 1c59062aae
0.5.0 (#476)
* Update to otel-java 0.5.0-SNAPSHOT (#462)

* Update to otel-java 0.5.0-SNAPSHOT

* Tests pass

* Check fix

* Switch to otel-java 0.5.0

* Add TODOs
2020-06-05 20:11:49 +03:00
Rashmi cfade733b8
Fixed Mongo client double tracing bug (#471)
* Fixes #457

* Addressing review comments
1. Added comments in test
2. Fixed latestDepTest failures in MongoAsyncClient by adding `declaresField`
3. Made TracingCommandListener inline in MongoClientAdvice

Co-authored-by: Nikita Salnikov-Tarnovski <gnikem@gmail.com>
2020-06-04 19:48:05 +03:00
Trask Stalnaker 96fa7b8c31
Merge changes from dd-trace-java 0.53.0 (#456)
* Add time in queue (DataDog/dd-trace-java#1481)

* Minor upgrades (DataDog/dd-trace-java#1495)

* Allow user to disable kafka time in queue tag (DataDog/dd-trace-java#1487)

* Replace Set<Integer> with BitSet for HTTP statuses (DataDog/dd-trace-java#1496)

* Register WeakMapProvider earlier in AgentInstaller (DataDog/dd-trace-java#1480)

* Update codenarc (DataDog/dd-trace-java#1500)

Co-authored-by: Tyler Benson <tyler.benson@datadoghq.com>
Co-authored-by: Nikolay Martynov <mar.kolya@gmail.com>
Co-authored-by: Richard Startin <richard.startin@datadoghq.com>
2020-06-02 18:20:54 +03:00
Anuraag Agrawal 9c63890d29
Intercept calls to ClientOverrideConfiguration to apply our instrumen… (#453) 2020-05-31 09:25:39 -07:00
Trask Stalnaker 35d4f61854
Remove printlns that were accidentally committed (#459) 2020-05-31 06:30:38 +03:00
Trask Stalnaker 359eb07445
Updates to reflect new repo name (#454) 2020-05-30 11:56:12 -07:00
Nikita Salnikov-Tarnovski 6aee3837d6
Fixes integration with latest version of Finatra (#450) 2020-05-28 11:53:41 -07:00
Trask Stalnaker 5c7e321521
Fix sporadic Elasticsearch test failures (#444) 2020-05-27 12:20:51 -07:00
Anuraag Agrawal d4a14f6b98
Separate out core instrumentation for AWS SDK to allow manual setup o… (#421)
* Separate out core instrumentation for AWS SDK to allow manual setup of instrumentation.

* Instrumentation core test
2020-05-27 10:43:56 -07:00
Tyler Benson b7ac69ee14 More refactoring for ScopeManager (DataDog/dd-trace-java#1467) 2020-05-26 11:54:59 -07:00
Richard Startin d8c9639fbb Grizzly-http and grizzly-client instrumentation (DataDog/dd-trace-java#1365) 2020-05-26 11:54:59 -07:00
Brian Devins-Suresh 67219faf25 Add version specific names to allow disabling only a specific version (DataDog/dd-trace-java#1456) 2020-05-26 11:54:56 -07:00
Brian Devins-Suresh f0e19d6a83 Rename java packages for lettuce 4 and 5 to not have collisions (DataDog/dd-trace-java#1450) 2020-05-26 11:54:56 -07:00
Tyler Benson dbe1c00ac1 Adding an option to manually disable Kafka headers (DataDog/dd-trace-java#1448) 2020-05-26 11:54:56 -07:00
Tyler Benson c58d259459 Make Retrys consistent (DataDog/dd-trace-java#1442) 2020-05-26 11:54:55 -07:00
Tyler Benson f74d249a2e Migrate lettuce instrumentation away from deprecated finishSpanOnClose (DataDog/dd-trace-java#1445) 2020-05-26 11:54:55 -07:00
Tyler Benson 3bb17e1c3c Remove deprecated usage from internal instrumentation (DataDog/dd-trace-java#1441) 2020-05-26 11:54:55 -07:00
Trask Stalnaker e9096bb60d
Fix java google format (#439) 2020-05-26 08:42:48 +03:00
Nikita Salnikov-Tarnovski 6c8cd2e7f2
Change names of servlet based server spans (#428)
* Add documentation describing non-obvious points of Servlet instrumentations

* Change names of servlet based server spans
2020-05-25 12:53:12 -07:00
Nikita Salnikov-Tarnovski a258f1424a
Fix khttp instrumentation in case of absent or read-only headers map (#416) 2020-05-20 13:47:25 -07:00
Nikita Salnikov-Tarnovski cd68061cb2
Update docs about needing java 11 to build (#412) 2020-05-18 14:17:32 -07:00
Trask Stalnaker f6e16c8f90
Bring back webflux client instrumentation (#406) 2020-05-18 13:06:18 -07:00
Nikita Salnikov-Tarnovski fe8819fb8f
Support for khttp library (#401) 2020-05-17 10:41:41 -07:00
Nikita Salnikov-Tarnovski 6d0d3f54ce
Enable the following instrumentation by default: grizzly, jetty, spark-java (#407) 2020-05-17 10:19:35 -07:00
Nikita Salnikov-Tarnovski 6cfe2256ef
Use java 11 for compilation (#390)
* Allow compiling of everything with java 11

* Instruct CircleCI to use java 11 be default

* Forbid running some tests on java11

* Muzzle uses ClassLoader.platformClassLoader as parent for user-space classloader
2020-05-14 15:13:30 -07:00
Lev Priima fbf31d3a39 Don't listen 0.0.0.0 in tests (DataDog/dd-trace-java#1434) 2020-05-14 11:50:31 -07:00
Tyler Benson f540ae8fc1 Add null servlet context check (DataDog/dd-trace-java#1414) 2020-05-14 11:50:30 -07:00
Tyler Benson 6b359d11ec Fix cassandra instrumentation to use a daemon thread (DataDog/dd-trace-java#1422) 2020-05-14 11:50:30 -07:00
Brian Devins-Suresh 6727764123 Netty 3.8 had the wrong version in the config property (DataDog/dd-trace-java#1423) 2020-05-14 11:50:30 -07:00
Richard Startin 95cac497d2 Replace collection.size() > 0 with not collection.isEmpty() (DataDog/dd-trace-java#1420) 2020-05-14 11:50:30 -07:00
Tyler Benson 5ecd8cb81e Add instrumentation for okhttp 2.2+ (DataDog/dd-trace-java#1402) 2020-05-14 11:50:27 -07:00
Nikolay Martynov c63b4fd9a3 Add scopes to http server response (DataDog/dd-trace-java#1408) 2020-05-14 11:49:44 -07:00
Brian Devins-Suresh 6f472a62a0 Fix projectreactor instrumentation to keep span context connected (DataDog/dd-trace-java#1308) 2020-05-14 11:49:44 -07:00
Trask Stalnaker ab0c950140
Update a few last things to otel-java 0.4.0 (#399) 2020-05-11 22:17:16 -07:00
Simon Leigh 3a4483a0f5
Add support for jTDS driver connection urls for SQL Server (#396)
The jTDS driver is an open source JDBC driver for connecting to SQL Server databases.
Added support for parsing the url connection string so that spans can be generated for the sql statements using this driver.

Fixes #395
2020-05-09 19:07:31 -07:00
Nikita Salnikov-Tarnovski e54f316b27
Add support for new @WithSpan annotation (#379) 2020-05-06 13:05:11 -07:00
Trask Stalnaker 6d1a58d151 Merge tag 'v0.50.0' into correct-history 2020-05-05 12:41:08 -07:00
Nikita Salnikov-Tarnovski c9cf7ffb61
Make auto-instr work with latest otel-java snapshot (#372)
* Make auto-instr work with latest otel-java snapshot

* Add CircleCI workflow to run nightly test job against otel-java snapshot

* Decrease snapshot versions cache time

* Add comments suggest during review

* Add comments suggest during review

* Add missed helper class

* Use released otel-java 0.4.0

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2020-05-04 23:18:39 -07:00
Nikita Salnikov-Tarnovski 28eaeb9fed
Allow to disable auto-instrumentation for specified methods (#369)
Add new configuration property, `trace.methods.exclude`, which marks methods which should be excluded from instrumentation. This does not affect any arbitrary auto-instrumentation. Only auto-instrumentation guided by supported annotations (see `trace.annotations` config option and its default value in TraceAnnotationsInstrumentation#DEFAULT_ANNOTATIONS) and by `trace.methods` configuration property can be disabled using this new configuration.
2020-05-04 13:17:44 -07:00
John Bley ca296b92fd
Normalize sql statements to elide literal numbers and strings. (#366)
* Normalize sql statements to elide literal numbers and strings.

* Missed one SlickTest sql normalization.

* Fix muzzle order for helper classes.

* Change name of feature flag

* Upgrade to latest spotless version in an attempt #1 to make the circleci build work.

* Attempt 2 to make circleci build happy - exclude build/generated/** from spotless.

* Attempt 3 to get circleci build working, adding *.java to the exclude line.

* Change exclude of generated files to include of just the src/ directory.
I confirmed that this properly failed the build if I remove a license header from a src/ directory.
2020-05-04 12:17:55 -07:00
Trask Stalnaker fbbccd31a6
Add DataDog trace annotation (#361) 2020-04-28 17:21:55 -07:00
Trask Stalnaker 3c4a6b545c
Fix Ratpack instrumentation for newer versions of Guava. (#360)
Ratpack 1.4 should still work if you increase your guava version to 20+ (instead of 19).

Co-authored-by: Tyler Benson <tyler.benson@datadoghq.com>
2020-04-28 13:42:16 -07:00
Pontus Rydin 9568ba079b
Use Builder::setAttribute whenever possible (#348) 2020-04-27 13:51:34 -07:00
Trask Stalnaker f9e74ac9c6
Fix some sporadic test failures (#354)
* Fix some sporadic test failures

* Improve Jetty test advice

* Fix smore sporadic test failures

* Improve test consistency
2020-04-27 11:40:27 -07:00
Trask Stalnaker ccff07abb8
Prevent instrumentation from applying too broadly (#337) 2020-04-24 15:09:30 -07:00
Nikita Salnikov-Tarnovski f958c2df2d
Add support for SignalFx and AppOptics tracing annotations (#345) 2020-04-23 21:21:25 -07:00
Trask Stalnaker ce3d764ffa Merge commit '437e0f343dcd66ac344556c03bd340ce791b1fdd' into correct-history 2020-04-21 12:55:51 -07:00
Sergei Malafeev 51cb8c6007
Add Cassandra Driver 4 instrumentation (#334) 2020-04-20 18:23:09 -07:00
Trask Stalnaker ecc26226dc Merge tag 'v0.49.0' into dd-merge 2020-04-18 16:00:00 -07:00
Trask Stalnaker 7f76929cd5
Rename resource name to span name (#327) 2020-04-16 12:13:42 -07:00
Trask Stalnaker 1f0cd54fd7
Remove copyright year from license header (#322)
* Update template

* Apply template
2020-04-15 11:24:44 -07:00
Trask Stalnaker e8a451cbce
Remove unused service method (#321) 2020-04-15 10:17:04 -07:00
Trask Stalnaker dc90ea7acb
Simplify Spring WebMVC decorator (#324) 2020-04-15 09:44:03 -07:00
Trask Stalnaker 262ab15fa8
Change aws-sdk span kind to INTERNAL (#323) 2020-04-15 09:16:24 -07:00
Trask Stalnaker a333cfe536
Remove unused getComponentName (#314) 2020-04-14 13:29:33 -07:00
Trask Stalnaker bf5b009ef8
Remove unused code (#319)
* Remove unused/deprecated code

* Remove unused code

* Remove unused return value

* Remove unnecessary throws clauses

* Remove unused code

* Remove default attribute value

* Remove unused code

* Remove unused code

* Remove unused code

* Remove unused constants

* Remove unused constant

* Remove unused parameter

* Remove unused PostMatchHook

* Remove unused constants
2020-04-14 12:29:24 -07:00
Trask Stalnaker d94bf95bcf
Add db.url for jedis-1.4 and jedis-3.0 (#316)
* Add db.url for jedis-1.4

* Add db.url for jedis-3.0
2020-04-14 12:00:09 -07:00
Trask Stalnaker d24159c8d2 Merge tag 'v0.48.0' into dd-merge 2020-04-12 15:20:10 -07:00
Trask Stalnaker c545ffa3c2 Merge tag 'v0.47.0' into dd-merge 2020-04-06 13:26:15 -07:00
Trask Stalnaker 10d93ac2a0
Fix double log capture (#299) 2020-04-01 10:49:45 -07:00
Trask Stalnaker 64b9585306
Fix gRPC Context shading (#297) 2020-03-31 15:30:42 -07:00
Trask Stalnaker 4fe685d916
Remove component attribute (#291) 2020-03-29 20:32:19 -07:00
Trask Stalnaker 570fa012c0
Remove service.name attribute (#290) 2020-03-29 20:29:15 -07:00
Trask Stalnaker 2e210683fd
Update to OpenTelemetry API/SDK 0.3.0 (#286)
* Update gradle dependencies and module name

* Replace Tracer.withSpan() with currentContextWith()

* Update inject to 0.3.0

* Update extract to 0.3.0

* More updates

* Remove distributedcontext package refs

* Update OpenTelemetry API interoperability

* No need to call setNoParent()

setParent(SpanContext.getInvalid()) should give the same result.
2020-03-28 19:38:51 -07:00
Trask Stalnaker 2a738506a9
Better span names for aws-sdk (#258) 2020-03-25 09:07:33 -07:00
John Bley 55deb722cf
Populate db.url for MongoDB spans. (#280) 2020-03-24 15:42:03 -07:00
Trask Stalnaker 68bafd6e0c
Update instrumentation package names, A-J (#266) 2020-03-23 11:22:54 -07:00
Trask Stalnaker c82baecb9d
Populate db.url for jdbc spans (#277) 2020-03-23 10:34:50 -07:00
Trask Stalnaker 96f89ecc48
Span name should not have http method (#279) 2020-03-23 09:52:20 -07:00
Trask Stalnaker 8fa84cb77b
Remove remaining resource.name attributes (#278)
* Remove resource.name validation from ignored tests

* Remove resource.name from test spans

* Remove unused parameter

* Change servlet dispatcher attribute name
2020-03-23 09:51:57 -07:00
Trask Stalnaker d55a8b37d0
Add Metrics API bridge (#276) 2020-03-23 09:51:18 -07:00