Commit Graph

127 Commits

Author SHA1 Message Date
Anuraag Agrawal cc47da585b
New Instrumenter API (#2596)
* Instrumenter

* Spotless

* More instrumenter

* More

* Instrumenter API

* New Instrumenter API - InstrumenterBuilder (#20)

* New Instrumenter API - InstrumenterBuilder

* New Instrumenter API - InstrumenterBuilder - code review comments

* Start doccing

* Docs

* Most tests

* Last test

* Stick with current hostName lookup for now

* Update testing-common/src/main/groovy/io/opentelemetry/instrumentation/test/base/HttpClientTest.groovy

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>

* New Instrumenter API - code review comments (#21)

* Doc

* Checkstyle

* Cleanups

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
2021-04-05 15:45:07 +09:00
HaloFour bf8ea885f2
Add AsyncSpanEndStrategy implementation for RxJava 2 instrumentation (#2665) 2021-04-04 22:05:01 -07:00
Lauri Tulmin 949d82fbef
Reset context class loader for new thread (#2691) 2021-04-01 16:29:11 -07:00
HaloFour 9a5c65284f
Rename Jdk8AsyncEndStrategy to Jdk8AsyncSpanEndStrategy (#2664) 2021-03-30 19:09:27 -07:00
HaloFour b0d27405eb
Add asynchronous tracing to Spring Boot Autoconfigure WithSpanAspect (#2618) 2021-03-29 16:35:08 -07:00
Anuraag Agrawal 79d7e88e53
Use Caffeine for weak maps (#2601)
* Caffeine weakmap

* Use Caffeine for weak maps

* Drift

* Drift

* Remove weak-lock-free

* Update licenses

* Fix bug

* Restore weaklockfree

* Clean

* Fixes

* Inline expunction

* Synchronized

* More comment

* Fix shading

* Executor

* computeIfAbsent and delete unused.

* Fix license report
2021-03-24 17:12:26 +09:00
Trask Stalnaker 0ce9ca57d9
Move attributes to span builder for use by samplers (#2587)
* Move attributes to span builder for sampler use

* Fix test

* Remove unnecessary test
2021-03-17 15:02:56 +02:00
Mateusz Rzeszutek ae23b97ec4
Move and rename NetPeerUtils (#2548)
* Move and rename NetPeerUtils

* Rename NetPeerUtils to NetPeerAttributes; inject instance instead of using a global var
* Rename SpanAttributeSetter to AttributeSetter (might be used to set on AttributesBuilder in the future, who knows)
* Deprecate default BaseTracer constructor: library instrumentations are supposed to inject all dependencies, the javaagent should explicitly pass globals

* fix compilation failure

* Remove peer.service customization from library instrumentation
2021-03-16 13:50:19 +01:00
Anuraag Agrawal cf6d9deb4e
Extract library instrumentation for lettuce 5.1 (#2533) 2021-03-10 10:03:53 +09:00
Piotr Glazar 92d61b5844
Auto value (#2494)
* SqlStatementInfo as AutoValue

* RequestMeta as AutoValue

* DbInfo as AutoValue

* After merge compilation fix

* CouchbaseQuerySanitizer compilation fix

* JdbcConnectionUrlParserTest compilation fix

* Revert "RequestMeta as AutoValue"

This reverts commit 609b57ee48.
2021-03-09 15:07:03 +02:00
Mateusz Rzeszutek 3dff44874f
Fix RestTemplateInterceptor so that it calls endExceptionally() on exception (#2516) 2021-03-08 09:36:47 -08:00
Mateusz Rzeszutek fe4d95a689
Refactor BaseTracer#onError() method (and unwrapThrowable()) (#2513)
* Refactor BaseTracer#onError() method (and unwrapThrowable())

Also remove the deprecated BaseTracer(Tracer) constructor.

* Update BaseTracer javadoc

* fix tests

* Code review comments
2021-03-08 15:08:26 +02:00
Anuraag Agrawal 94872b1ced
Move DB helpers to instrumentation-api (#2511)
* Move DB helpers to instrumentation-api

* Fix gradle config

* Remove legacy
2021-03-08 12:32:36 +09:00
Trask Stalnaker 5162c023bc
Updates to thread propagation debug property (#2500) 2021-03-05 11:02:36 -08:00
Mateusz Rzeszutek 72ffb3b7c5
Make BaseTracer fields private (#2492)
* Make BaseTracer fields private

By making `tracer` private we're forcing all tracer implementation to use the `spanBuilder()` utility method and pass the parent context manually.
2021-03-05 10:54:00 -08:00
Anuraag Agrawal d7f8967ff6
Add a caching API based on caffeine for use from instrumentation, not just javaagent (#2477)
* Add caching API

* Finish

* javadoc

* Extract dep

* git add

* Drift

* Spotbugs

* checkstyle

* Fix package

* Test Caffeine patch
2021-03-05 17:57:23 +09:00
Lauri Tulmin 29790d8472
Low cardinality name for servlet span (#2417) 2021-03-04 12:39:37 -08:00
Trask Stalnaker 0abc492bc3
Rename more properties (#2486)
* Rename more props to experimental

* Rename more properties

* Rename .internal to .testing

* Revert changes to examples distro

* Move chunk.new-trace to experimental

* Fix unrelated build issue
2021-03-04 11:20:47 -08:00
Mateusz Rzeszutek 8242a01b3a
Clean up and document BaseTracer (#2482) 2021-03-04 11:21:46 +01:00
Mateusz Rzeszutek fbe55e04aa
Use low cardinality span names in Cassandra instrumentation (#2423) 2021-03-03 17:54:44 +01:00
Mateusz Rzeszutek 04d6fb67ff
Move SERVER and CLIENT span context keys out of BaseTracer (#2468)
* Move SERVER and CLIENT span context keys out of BaseTracer

Inspired by https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/1726#issuecomment-731890267

* Rename context keys

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

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-03-03 16:12:42 +01:00
Mateusz Rzeszutek a139d72014
Initialize Config for library instrumentations (#2467)
* Initialize Config for library instrumentations

Extracted from https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2434

* Fix tests
2021-03-03 09:55:14 +02:00
Anuraag Agrawal 9f3dfdbc51
Use atomic updaters instead of atomic fields to reduce allocations fo… (#2462)
* Use atomic updaters instead of atomic fields to reduce allocations for commonly created objects.

* Typo
2021-03-03 14:56:37 +09:00
Mateusz Rzeszutek 8f3ea83504
Move some classes out of instrumentation-api (#2466)
* MethodsConfigurationParser is moved to javaagent-tooling - it's only used in some instrumentation modules
* BootstrapPackagePrefixesHolder is moved to javaagent-api - it just needs to be in the bootstrap CL for the classloader instrumentation, so it does not necessarily need to be instrumentation-api
2021-03-02 10:31:53 -08:00
Trask Stalnaker c838498a73
Rename two props to otel.instrumentation.common.* (#2457) 2021-03-02 10:25:36 -08:00
Mateusz Rzeszutek 24486c35b5
Use low cardinality span names in Couchbase instrumentation (#2449)
Also move unit tests to a separate module, previously they passed purely by accident (necessary classes were injected by the javaagent)
2021-03-02 10:25:01 -08:00
Mateusz Rzeszutek c18acb858e
Add BaseTracer#inject() method (#2453)
* Add BaseTracer#inject() method

And avoid using GlobalOpenTelemetry#getPropagators()

* Code review comments
2021-03-02 15:30:04 +01:00
Mateusz Rzeszutek 32a575ca9c
Remove deprecated BaseTracer#extractWithGlobalPropagators() methods (#2452) 2021-03-02 11:05:42 +01:00
Mateusz Rzeszutek 163062d13e
Remove deprecated end() & endExceptionally() methods from BaseTracer (#2424) 2021-03-01 18:14:30 +01:00
John Watson 6fed672dc6
move the SupportabilityMetrics class and make package-private (#2427) 2021-02-26 20:56:09 -08:00
Mateusz Rzeszutek fd55ce226a
Refactor DatabaseClientTracer (in preparation for low-cardinality span names) (#2398)
* Refactor DatabaseClientTracer (in preparation for low-cardinality span names)

* spotless
2021-02-26 15:36:24 +01:00
Mateusz Rzeszutek e87cf37f63
Remove some deprecated BaseTracer#end(Span) usages (part 1) (#2401) 2021-02-25 11:35:37 +01:00
John Watson 57185f5b73
Create a new SupportabilityMetrics class rather than using alpha Metrics (#2353) 2021-02-24 12:34:45 -08:00
Nikita Salnikov-Tarnovski eaa8604e96
Better context passing for Netty 4.1 (#2361)
* Better context passing for Netty 4.1

* Format

* Update instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/context/ContextPropagationDebug.java

Co-authored-by: Anuraag Agrawal <anuraaga@gmail.com>

* Return test

Co-authored-by: Anuraag Agrawal <anuraaga@gmail.com>
2021-02-23 10:26:41 +02:00
Lauri Tulmin c8ca7e8d07
Make http.flavor spec compliant (#2370) 2021-02-22 13:12:05 -08:00
Anuraag Agrawal 0290761acb
Migrate Armeria to HttpServer/ClientTest (#2345)
* Add HttpServerTest for Armeria

* semicolon
2021-02-20 10:35:54 +09:00
Anuraag Agrawal 000df967ce
Update to SDK 0.17.0 (#2338)
* Update to SDK 0.17.0

* Finish

* ottrace
2021-02-19 15:51:55 +09:00
Mateusz Rzeszutek f127a972dc
Add 'trace_flags' to logging MDC (#2312)
* Add 'trace_flags' to logging MDC

* Remove 'sampled' flag
* Rename MDC keys to the current logging spec convention: trace_id instead of traceId

* Fix smoke tests
2021-02-18 16:47:26 +09:00
John Watson 836da8dbfd
Add a metric for counting the number of suppressed spans. (#2135)
* Add debug logging when a span is suppressed.

* cleanup from PR comments

* add a `default` to the switch to make checkstyle happy

* rather than logging, use a counter to keep track of the number of suppressed spans.

* update for latest from upstream

* add a default branch for checkstyle
2021-02-17 09:29:58 +02:00
Anuraag Agrawal c6bb83e653
Don't String.format when determining if instrumentation is enabled. (#2309) 2021-02-17 12:52:40 +09:00
John Watson a0b208fd52
Turn on the logging span exporter if agent debug is enabled. (#2270) 2021-02-16 15:38:37 -08:00
Mateusz Rzeszutek a74f60b3f8
Add JUnit 5 extensions for instrumentation testing (#2241)
* Add JUnit 5 extensions for instrumentation testing

* Fix kafka tests

* RepeatedTest
2021-02-12 12:57:08 +01:00
Mateusz Rzeszutek 0fbdcad1dd
Make BaseTracer#startSpan() return Context (#2232)
* Make BaseTracer#startSpan() return Context

* Update instrumentation/apache-camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/CamelEventNotifier.java

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

* spotless

* Add Javadocs to BaseTracer

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-02-12 12:12:40 +01:00
Mateusz Rzeszutek ecf64c25f3
Remove BaseTracer#startScope() method (#2224)
* Remove BaseTracer#startScope() method

* fix compilation failure
2021-02-10 11:39:38 +01:00
ET 42850e3ac2
Add OpenTelemetry parameter constructors to all api Tracer classes (#2233) 2021-02-09 13:35:41 -08:00
Anuraag Agrawal fc410706d0
Update to Sdk 0.16.0 (#2221)
* Update to 0.16.0-SNAPSHOT

* Finish

* Finish

* Update to 0.16.0

* Finish
2021-02-09 18:00:54 +09:00
John Watson 644ee18666
Add constructors/methods to the base tracers to enable injecting an OpenTelemetry instance (#2197)
* Add constructors/methods to the base tracers to enable injecting propagators.

* formatting

* deprecate old things. convert to non-deprecated where easily possible.

* formatting, always more formatting
2021-02-05 15:50:47 +02:00
Mateusz Rzeszutek 7a3f345c18
Clean up BaseTracer, part 1 (#2159)
* Move context leak debugging to ContextPropagationDebug
* Remove getCurrentSpan()
* Add end(Context, ...) & endExceptionally(Context, ...) methods - they're supposed to replace the ones that accept Spans in the future
2021-02-02 10:12:46 +02:00
汤煜冬 c523fa2eae
add abstract method getRpcSystem() (#2149) 2021-02-01 13:47:27 +02:00
Jakub Wach 77922d4834
SQS propagation for AWS SDK 1.1 (#2114) 2021-01-29 10:21:12 +02:00