Wraps the default W3CTraceContextPropagator to conditionally exclude ClassNames from having context injected into outgoing requests/messages in Java Apps that instrumented by OpenTelemetry Java Agent.
This can be used to ensure that outgoing requests/messages do not contain context propagation "extra data" like traceparent in their headers, while still allowing the instrumented Apps to emit traces.
- Gradle 8.14.2
- Java 8
- Clone the repo into your
<project-root-directory>git clone https://github.com/zephyrdark/exclude-class-propagator.git - Change directory into the repo
cd exclude-class-propagator - Ensure formatting
gradle spotlessApply - Running below command will build 3
.jarfiles intobuild/libsEither of these builtgradle build.jarfiles can be used:opentelemetry-javaagent-with-excludeClassPropagator.jarexclude-class-propagator-1.0-all.jar
-
You can choose to either use the extended Otel Java Agent
opentelemetry-javaagent-with-excludeClassPropagator.jaras follows:java -javaagent:path/to/opentelemetry-javaagent-with-excludeClassPropagator.jar \ -Dotel.propagators.tracecontext-exclude \ -Dotel.instrumentation.propagators.tracecontext-exclude.injection=package1.ClassName1,package2.ClassName2 \ -jar path/to/target-app.jaror the original Otel Java Agent
opentelemetry-javaagent.jarwith the extension jar:java -javaagent:path/to/opentelemetry-javaagent.jar \ -Dotel.javaagent.extensions=build/libs/exclude-class-propagator.jar \ -Dotel.propagators.tracecontext-exclude \ -Dotel.instrumentation.propagators.tracecontext-exclude.injection=package1.ClassName1,package2.ClassName2 \ -jar path/to/target-app.jar