Move AwsXrayPropagator to extension artifact. (#2771)

This commit is contained in:
Anuraag Agrawal 2021-02-09 11:36:58 +09:00 committed by GitHub
parent 8898e4c441
commit 4670252e20
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 60 additions and 24 deletions

View File

@ -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')
}

View File

@ -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";
}
}

View File

@ -3,7 +3,7 @@
* 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.SpanContext;

View File

@ -0,0 +1,5 @@
/** OpenTelemetry API extensions for use with AWS. */
@ParametersAreNonnullByDefault
package io.opentelemetry.extension.aws;
import javax.annotation.ParametersAreNonnullByDefault;

View File

@ -0,0 +1 @@
io.opentelemetry.extension.aws.AwsConfigurablePropagator

View File

@ -3,9 +3,9 @@
* 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 io.opentelemetry.api.trace.Span;

View File

@ -15,18 +15,6 @@ OpenTelemetry Java provides first-party support for
[Jaeger](https://github.com/jaegertracing/jaeger) propagators. Issues with those propagators
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
From the root of the repo run `./gradlew clean :opentelemetry-extension-trace-propagators:jmh`

View File

@ -14,4 +14,6 @@ dependencies {
testImplementation "io.jaegertracing:jaeger-client",
"com.google.guava:guava"
jmhImplementation project(":extensions:aws")
}

View File

@ -8,6 +8,7 @@ package io.opentelemetry.extension.trace.propagation;
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.context.Context;
import io.opentelemetry.context.propagation.TextMapPropagator;
import io.opentelemetry.extension.aws.AwsXrayPropagator;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
@ -271,19 +272,19 @@ public class PropagatorContextExtractBenchmark {
private static final List<Map<String, String>> traceHeaders =
Arrays.asList(
Collections.singletonMap(
AwsXrayPropagator.TRACE_HEADER_KEY,
"X-Amzn-Trace-Id",
"Root=1-8a3c60f7-d188f8fa79d48a391a778fa6;Parent=53995c3f42cd8ad8;Sampled=1"),
Collections.singletonMap(
AwsXrayPropagator.TRACE_HEADER_KEY,
"X-Amzn-Trace-Id",
"Root=1-8a3c60f7-d188f8fa79d48a391a778fa6;Parent=53995c3f42cd8ad8;Sampled=0"),
Collections.singletonMap(
AwsXrayPropagator.TRACE_HEADER_KEY,
"X-Amzn-Trace-Id",
"Parent=53995c3f42cd8ad8;Sampled=1;Root=1-8a3c60f7-d188f8fa79d48a391a778fa6"),
Collections.singletonMap(
AwsXrayPropagator.TRACE_HEADER_KEY,
"X-Amzn-Trace-Id",
"Root=1-57ff426a-80c11c39b0c928905eb0828d;Parent=53995c3f42cd8ad8;Sampled=1"),
Collections.singletonMap(
AwsXrayPropagator.TRACE_HEADER_KEY,
"X-Amzn-Trace-Id",
"Root=1-57ff426a-80c11c39b0c928905eb0828d;Parent=12345c3f42cd8ad8;Sampled=0"));
private final TextMapPropagator.Getter<Map<String, String>> getter =

View File

@ -11,6 +11,7 @@ import io.opentelemetry.api.trace.TraceFlags;
import io.opentelemetry.api.trace.TraceState;
import io.opentelemetry.context.Context;
import io.opentelemetry.context.propagation.TextMapPropagator;
import io.opentelemetry.extension.aws.AwsXrayPropagator;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;

View File

@ -38,6 +38,7 @@ dependencies {
testRuntimeOnly 'io.grpc:grpc-netty-shaded'
testRuntimeOnly "org.slf4j:slf4j-simple"
testFullConfigImplementation project(':extensions:aws')
testFullConfigImplementation project(':extensions:trace-propagators')
testFullConfigImplementation project(':exporters:jaeger')
testFullConfigImplementation project(':exporters:logging')

View File

@ -9,7 +9,6 @@ import io.opentelemetry.api.baggage.propagation.W3CBaggagePropagator;
import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator;
import io.opentelemetry.context.propagation.ContextPropagators;
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.JaegerPropagator;
import io.opentelemetry.extension.trace.propagation.OtTracePropagator;
@ -65,8 +64,6 @@ final class PropagatorConfiguration {
// NB: https://github.com/open-telemetry/opentelemetry-specification/pull/1406
case "ottracer":
return OtTracePropagator.getInstance();
case "xray":
return AwsXrayPropagator.getInstance();
default:
TextMapPropagator spiPropagator = spiPropagators.get(name);
if (spiPropagator != null) {

View File

@ -17,7 +17,7 @@ import io.grpc.stub.StreamObserver;
import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.api.baggage.propagation.W3CBaggagePropagator;
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.JaegerPropagator;
import io.opentelemetry.extension.trace.propagation.OtTracePropagator;

View File

@ -44,6 +44,7 @@ include ":all",
":bom-alpha",
":dependencyManagement",
":extensions:annotations",
":extensions:aws",
":extensions:kotlin",
":extensions:trace-propagators",
":exporters:jaeger",