Move AwsXrayPropagator to extension artifact. (#2771)
This commit is contained in:
parent
8898e4c441
commit
4670252e20
|
|
@ -0,0 +1,14 @@
|
||||||
|
plugins {
|
||||||
|
id "java-library"
|
||||||
|
id "maven-publish"
|
||||||
|
|
||||||
|
id "ru.vyarus.animalsniffer"
|
||||||
|
}
|
||||||
|
|
||||||
|
description = 'OpenTelemetry API Extensions for AWS'
|
||||||
|
ext.moduleName = "io.opentelemetry.extension.aws"
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
api project(':api:all')
|
||||||
|
compileOnly project(':sdk-extensions:autoconfigure')
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
/*
|
||||||
|
* Copyright The OpenTelemetry Authors
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.opentelemetry.extension.aws;
|
||||||
|
|
||||||
|
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||||
|
import io.opentelemetry.sdk.autoconfigure.spi.ConfigurablePropagatorProvider;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A {@link ConfigurablePropagatorProvider} which allows enabling the {@link AwsXrayPropagator} with
|
||||||
|
* the propagator name {@code xray}.
|
||||||
|
*/
|
||||||
|
public class AwsConfigurablePropagator implements ConfigurablePropagatorProvider {
|
||||||
|
@Override
|
||||||
|
public TextMapPropagator getPropagator() {
|
||||||
|
return AwsXrayPropagator.getInstance();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return "xray";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package io.opentelemetry.extension.trace.propagation;
|
package io.opentelemetry.extension.aws;
|
||||||
|
|
||||||
import io.opentelemetry.api.trace.Span;
|
import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.SpanContext;
|
import io.opentelemetry.api.trace.SpanContext;
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
/** OpenTelemetry API extensions for use with AWS. */
|
||||||
|
@ParametersAreNonnullByDefault
|
||||||
|
package io.opentelemetry.extension.aws;
|
||||||
|
|
||||||
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
io.opentelemetry.extension.aws.AwsConfigurablePropagator
|
||||||
|
|
@ -3,9 +3,9 @@
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package io.opentelemetry.extension.trace.propagation;
|
package io.opentelemetry.extension.aws;
|
||||||
|
|
||||||
import static io.opentelemetry.extension.trace.propagation.AwsXrayPropagator.TRACE_HEADER_KEY;
|
import static io.opentelemetry.extension.aws.AwsXrayPropagator.TRACE_HEADER_KEY;
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
import io.opentelemetry.api.trace.Span;
|
import io.opentelemetry.api.trace.Span;
|
||||||
|
|
@ -15,18 +15,6 @@ OpenTelemetry Java provides first-party support for
|
||||||
[Jaeger](https://github.com/jaegertracing/jaeger) propagators. Issues with those propagators
|
[Jaeger](https://github.com/jaegertracing/jaeger) propagators. Issues with those propagators
|
||||||
should be filed against this repo.
|
should be filed against this repo.
|
||||||
|
|
||||||
This project also contains 3rd-party propagators for other formats. These propagators are here for
|
|
||||||
convenience and are not officially supported by the OpenTelemetry Java maintainers.
|
|
||||||
|
|
||||||
Issues/support for these propagators is only provided as a minimal "best effort", and critical
|
|
||||||
bugs should be filed with the respective vendors themselves.
|
|
||||||
|
|
||||||
* AWS X-Ray (file an issue here and mention @anuraaga)
|
|
||||||
* LightStep OpenTracing (file an issue here and mention @carlosalberto)
|
|
||||||
|
|
||||||
Extension providers that do not receive adequate support/maintenance by their respective vendors
|
|
||||||
will become candidates for future removal.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
#### Running micro-benchmarks
|
#### Running micro-benchmarks
|
||||||
From the root of the repo run `./gradlew clean :opentelemetry-extension-trace-propagators:jmh`
|
From the root of the repo run `./gradlew clean :opentelemetry-extension-trace-propagators:jmh`
|
||||||
|
|
|
||||||
|
|
@ -14,4 +14,6 @@ dependencies {
|
||||||
|
|
||||||
testImplementation "io.jaegertracing:jaeger-client",
|
testImplementation "io.jaegertracing:jaeger-client",
|
||||||
"com.google.guava:guava"
|
"com.google.guava:guava"
|
||||||
|
|
||||||
|
jmhImplementation project(":extensions:aws")
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ package io.opentelemetry.extension.trace.propagation;
|
||||||
import io.opentelemetry.api.trace.Span;
|
import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.context.Context;
|
import io.opentelemetry.context.Context;
|
||||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||||
|
import io.opentelemetry.extension.aws.AwsXrayPropagator;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
@ -271,19 +272,19 @@ public class PropagatorContextExtractBenchmark {
|
||||||
private static final List<Map<String, String>> traceHeaders =
|
private static final List<Map<String, String>> traceHeaders =
|
||||||
Arrays.asList(
|
Arrays.asList(
|
||||||
Collections.singletonMap(
|
Collections.singletonMap(
|
||||||
AwsXrayPropagator.TRACE_HEADER_KEY,
|
"X-Amzn-Trace-Id",
|
||||||
"Root=1-8a3c60f7-d188f8fa79d48a391a778fa6;Parent=53995c3f42cd8ad8;Sampled=1"),
|
"Root=1-8a3c60f7-d188f8fa79d48a391a778fa6;Parent=53995c3f42cd8ad8;Sampled=1"),
|
||||||
Collections.singletonMap(
|
Collections.singletonMap(
|
||||||
AwsXrayPropagator.TRACE_HEADER_KEY,
|
"X-Amzn-Trace-Id",
|
||||||
"Root=1-8a3c60f7-d188f8fa79d48a391a778fa6;Parent=53995c3f42cd8ad8;Sampled=0"),
|
"Root=1-8a3c60f7-d188f8fa79d48a391a778fa6;Parent=53995c3f42cd8ad8;Sampled=0"),
|
||||||
Collections.singletonMap(
|
Collections.singletonMap(
|
||||||
AwsXrayPropagator.TRACE_HEADER_KEY,
|
"X-Amzn-Trace-Id",
|
||||||
"Parent=53995c3f42cd8ad8;Sampled=1;Root=1-8a3c60f7-d188f8fa79d48a391a778fa6"),
|
"Parent=53995c3f42cd8ad8;Sampled=1;Root=1-8a3c60f7-d188f8fa79d48a391a778fa6"),
|
||||||
Collections.singletonMap(
|
Collections.singletonMap(
|
||||||
AwsXrayPropagator.TRACE_HEADER_KEY,
|
"X-Amzn-Trace-Id",
|
||||||
"Root=1-57ff426a-80c11c39b0c928905eb0828d;Parent=53995c3f42cd8ad8;Sampled=1"),
|
"Root=1-57ff426a-80c11c39b0c928905eb0828d;Parent=53995c3f42cd8ad8;Sampled=1"),
|
||||||
Collections.singletonMap(
|
Collections.singletonMap(
|
||||||
AwsXrayPropagator.TRACE_HEADER_KEY,
|
"X-Amzn-Trace-Id",
|
||||||
"Root=1-57ff426a-80c11c39b0c928905eb0828d;Parent=12345c3f42cd8ad8;Sampled=0"));
|
"Root=1-57ff426a-80c11c39b0c928905eb0828d;Parent=12345c3f42cd8ad8;Sampled=0"));
|
||||||
|
|
||||||
private final TextMapPropagator.Getter<Map<String, String>> getter =
|
private final TextMapPropagator.Getter<Map<String, String>> getter =
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ import io.opentelemetry.api.trace.TraceFlags;
|
||||||
import io.opentelemetry.api.trace.TraceState;
|
import io.opentelemetry.api.trace.TraceState;
|
||||||
import io.opentelemetry.context.Context;
|
import io.opentelemetry.context.Context;
|
||||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||||
|
import io.opentelemetry.extension.aws.AwsXrayPropagator;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,7 @@ dependencies {
|
||||||
testRuntimeOnly 'io.grpc:grpc-netty-shaded'
|
testRuntimeOnly 'io.grpc:grpc-netty-shaded'
|
||||||
testRuntimeOnly "org.slf4j:slf4j-simple"
|
testRuntimeOnly "org.slf4j:slf4j-simple"
|
||||||
|
|
||||||
|
testFullConfigImplementation project(':extensions:aws')
|
||||||
testFullConfigImplementation project(':extensions:trace-propagators')
|
testFullConfigImplementation project(':extensions:trace-propagators')
|
||||||
testFullConfigImplementation project(':exporters:jaeger')
|
testFullConfigImplementation project(':exporters:jaeger')
|
||||||
testFullConfigImplementation project(':exporters:logging')
|
testFullConfigImplementation project(':exporters:logging')
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@ import io.opentelemetry.api.baggage.propagation.W3CBaggagePropagator;
|
||||||
import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator;
|
import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator;
|
||||||
import io.opentelemetry.context.propagation.ContextPropagators;
|
import io.opentelemetry.context.propagation.ContextPropagators;
|
||||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||||
import io.opentelemetry.extension.trace.propagation.AwsXrayPropagator;
|
|
||||||
import io.opentelemetry.extension.trace.propagation.B3Propagator;
|
import io.opentelemetry.extension.trace.propagation.B3Propagator;
|
||||||
import io.opentelemetry.extension.trace.propagation.JaegerPropagator;
|
import io.opentelemetry.extension.trace.propagation.JaegerPropagator;
|
||||||
import io.opentelemetry.extension.trace.propagation.OtTracePropagator;
|
import io.opentelemetry.extension.trace.propagation.OtTracePropagator;
|
||||||
|
|
@ -65,8 +64,6 @@ final class PropagatorConfiguration {
|
||||||
// NB: https://github.com/open-telemetry/opentelemetry-specification/pull/1406
|
// NB: https://github.com/open-telemetry/opentelemetry-specification/pull/1406
|
||||||
case "ottracer":
|
case "ottracer":
|
||||||
return OtTracePropagator.getInstance();
|
return OtTracePropagator.getInstance();
|
||||||
case "xray":
|
|
||||||
return AwsXrayPropagator.getInstance();
|
|
||||||
default:
|
default:
|
||||||
TextMapPropagator spiPropagator = spiPropagators.get(name);
|
TextMapPropagator spiPropagator = spiPropagators.get(name);
|
||||||
if (spiPropagator != null) {
|
if (spiPropagator != null) {
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ import io.grpc.stub.StreamObserver;
|
||||||
import io.opentelemetry.api.GlobalOpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.baggage.propagation.W3CBaggagePropagator;
|
import io.opentelemetry.api.baggage.propagation.W3CBaggagePropagator;
|
||||||
import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator;
|
import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator;
|
||||||
import io.opentelemetry.extension.trace.propagation.AwsXrayPropagator;
|
import io.opentelemetry.extension.aws.AwsXrayPropagator;
|
||||||
import io.opentelemetry.extension.trace.propagation.B3Propagator;
|
import io.opentelemetry.extension.trace.propagation.B3Propagator;
|
||||||
import io.opentelemetry.extension.trace.propagation.JaegerPropagator;
|
import io.opentelemetry.extension.trace.propagation.JaegerPropagator;
|
||||||
import io.opentelemetry.extension.trace.propagation.OtTracePropagator;
|
import io.opentelemetry.extension.trace.propagation.OtTracePropagator;
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,7 @@ include ":all",
|
||||||
":bom-alpha",
|
":bom-alpha",
|
||||||
":dependencyManagement",
|
":dependencyManagement",
|
||||||
":extensions:annotations",
|
":extensions:annotations",
|
||||||
|
":extensions:aws",
|
||||||
":extensions:kotlin",
|
":extensions:kotlin",
|
||||||
":extensions:trace-propagators",
|
":extensions:trace-propagators",
|
||||||
":exporters:jaeger",
|
":exporters:jaeger",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue