Use contrib AwsXrayPropagator (#7234)

Reflects move of `AwsXrayPropagator` to
[opentelemetry-java-contrib/aws-xray-propagator](https://github.com/open-telemetry/opentelemetry-java-contrib/tree/main/aws-xray-propagator).
This commit is contained in:
jack-berg 2022-11-21 13:31:17 -06:00 committed by GitHub
parent 72cc791b39
commit 94ba33e395
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
25 changed files with 60 additions and 57 deletions

View File

@ -89,6 +89,7 @@ val DEPENDENCIES = listOf(
"commons-logging:commons-logging:1.2",
"commons-validator:commons-validator:1.7",
"io.netty:netty:3.10.6.Final",
"io.opentelemetry.contrib:opentelemetry-aws-xray-propagator:1.20.0-alpha",
"io.opentelemetry.proto:opentelemetry-proto:0.19.0-alpha",
"org.assertj:assertj-core:3.23.1",
"org.awaitility:awaitility:4.2.0",

View File

@ -12,5 +12,5 @@ dependencies {
testImplementation("org.apache.camel:camel-http:2.20.1")
testImplementation("io.opentelemetry:opentelemetry-extension-trace-propagators")
testImplementation("io.opentelemetry:opentelemetry-extension-aws")
testImplementation("io.opentelemetry.contrib:opentelemetry-aws-xray-propagator")
}

View File

@ -15,7 +15,7 @@ val camelversion = "2.20.1" // first version that the tests pass on
dependencies {
library("org.apache.camel:camel-core:$camelversion")
implementation("io.opentelemetry:opentelemetry-extension-aws")
implementation("io.opentelemetry.contrib:opentelemetry-aws-xray-propagator")
// without adding this dependency, javadoc fails:
// warning: unknown enum constant XmlAccessType.PROPERTY

View File

@ -26,6 +26,6 @@ public class ApacheCamelInstrumentationModule extends InstrumentationModule {
@Override
public boolean isHelperClass(String className) {
return className.startsWith("io.opentelemetry.extension.aws.");
return className.startsWith("io.opentelemetry.contrib.awsxray.");
}
}

View File

@ -9,6 +9,7 @@ import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.context.Context;
import io.opentelemetry.context.propagation.TextMapGetter;
import io.opentelemetry.context.propagation.TextMapSetter;
import io.opentelemetry.contrib.awsxray.propagator.AwsXrayPropagator;
import java.util.Collections;
import java.util.Map;
import org.apache.camel.Endpoint;
@ -27,9 +28,8 @@ final class CamelPropagationUtil {
return endpoint.getClass().getName().endsWith("SqsEndpoint");
}
@SuppressWarnings("deprecation") // deprecated class to be updated once published in new location
private static Context extractAwsPropagationParent(Map<String, Object> exchangeHeaders) {
return io.opentelemetry.extension.aws.AwsXrayPropagator.getInstance()
return AwsXrayPropagator.getInstance()
.extract(
Context.current(),
Collections.singletonMap("X-Amzn-Trace-Id", exchangeHeaders.get("AWSTraceHeader")),

View File

@ -20,7 +20,7 @@ public class AwsLambdaInstrumentationModule extends InstrumentationModule {
@Override
public boolean isHelperClass(String className) {
return className.startsWith("io.opentelemetry.extension.aws.");
return className.startsWith("io.opentelemetry.contrib.awsxray.");
}
@Override

View File

@ -47,14 +47,16 @@ A `SERVER` span will be created with the name you specify for the function when
In addition, it is recommended to set up X-Ray trace propagation to be able to
link to tracing information provided by Lambda itself. To do so, add a dependency on
`opentelemetry-extension-tracepropagators`. Make sure the version matches the version of the SDK
you use.
`io.opentelemetry.contrib:opentelemetry-aws-xray-propagator`.
Replace `OPENTELEMETRY_VERSION` with the [latest
release](https://search.maven.org/search?q=g:io.opentelemetry.contrib%20AND%20a:opentelemetry-aws-xray-propagator).
Gradle:
```kotlin
dependencies {
implementation("io.opentelemetry:opentelemetry-extension-trace-propagators:0.8.0")
implementation("io.opentelemetry.contrib:opentelemetry-aws-xray-propagator:OPENTELEMETRY_VERSION")
}
```
@ -63,9 +65,9 @@ Maven:
```xml
<dependencies>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-extension-trace-propagators</artifactId>
<version>0.8.0</version>
<groupId>io.opentelemetry.contrib</groupId>
<artifactId>opentelemetry-aws-xray-propagator</artifactId>
<version>OPENTELEMETRY_VERSION</version>
</dependency>
</dependencies>
```

View File

@ -11,7 +11,7 @@ dependencies {
library("com.amazonaws:aws-lambda-java-core:1.0.0")
implementation("io.opentelemetry:opentelemetry-extension-aws")
implementation("io.opentelemetry.contrib:opentelemetry-aws-xray-propagator")
// We do lightweight parsing of JSON to extract HTTP headers from requests for propagation.
// This will be commonly needed even for users that don't use events, but luckily it's not too big.

View File

@ -11,6 +11,7 @@ import io.opentelemetry.api.trace.Span;
import io.opentelemetry.api.trace.SpanContext;
import io.opentelemetry.context.Context;
import io.opentelemetry.context.propagation.TextMapGetter;
import io.opentelemetry.contrib.awsxray.propagator.AwsXrayPropagator;
import java.util.Collections;
import java.util.Locale;
import java.util.Map;
@ -53,9 +54,8 @@ public final class ParentContextExtractor {
// lower-case map getter used for extraction
static final String AWS_TRACE_HEADER_PROPAGATOR_KEY = "x-amzn-trace-id";
@SuppressWarnings("deprecation") // deprecated class to be updated once published in new location
public static Context fromXrayHeader(String parentHeader) {
return io.opentelemetry.extension.aws.AwsXrayPropagator.getInstance()
return AwsXrayPropagator.getInstance()
.extract(
// see BaseTracer#extract() on why we're using root() here
Context.root(),

View File

@ -15,6 +15,7 @@ import static org.mockito.Mockito.when;
import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.context.propagation.ContextPropagators;
import io.opentelemetry.contrib.awsxray.propagator.AwsXrayPropagator;
import io.opentelemetry.extension.trace.propagation.B3Propagator;
import java.io.IOException;
import java.io.InputStream;
@ -41,14 +42,11 @@ class ApiGatewayProxyRequestTest {
}
@Test
@SuppressWarnings("deprecation") // deprecated class to be updated once published in new location
public void shouldCreateNoopRequestIfXrayPropagatorsSet() throws IOException {
// given
InputStream mock = mock(InputStream.class);
GlobalOpenTelemetry.set(
OpenTelemetry.propagating(
ContextPropagators.create(
io.opentelemetry.extension.aws.AwsXrayPropagator.getInstance())));
OpenTelemetry.propagating(ContextPropagators.create(AwsXrayPropagator.getInstance())));
// when
ApiGatewayProxyRequest created = ApiGatewayProxyRequest.forStream(mock);
// then

View File

@ -27,7 +27,7 @@ public class AwsLambdaInstrumentationModule extends InstrumentationModule {
@Override
public boolean isHelperClass(String className) {
return className.startsWith("io.opentelemetry.extension.aws.");
return className.startsWith("io.opentelemetry.contrib.awsxray.");
}
@Override

View File

@ -23,7 +23,7 @@ dependencies {
// Note that Lambda itself uses Jackson, but does not expose it to the function so we need to include it here.
// TODO(anuraaga): Switch to aws-lambda-java-serialization to more robustly follow Lambda's serialization logic.
implementation("com.fasterxml.jackson.core:jackson-databind")
implementation("io.opentelemetry:opentelemetry-extension-aws")
implementation("io.opentelemetry.contrib:opentelemetry-aws-xray-propagator")
// allows to get the function ARN
testLibrary("com.amazonaws:aws-lambda-java-core:1.2.1")

View File

@ -47,7 +47,7 @@ configurations {
}
dependencies {
compileOnly("io.opentelemetry:opentelemetry-extension-aws")
compileOnly("io.opentelemetry.contrib:opentelemetry-aws-xray-propagator")
implementation(project(":instrumentation:aws-sdk:aws-sdk-1.11:library"))

View File

@ -20,7 +20,7 @@ public class AwsSdkInstrumentationModule extends InstrumentationModule {
@Override
public boolean isHelperClass(String className) {
return className.startsWith("io.opentelemetry.extension.aws.");
return className.startsWith("io.opentelemetry.contrib.awsxray.");
}
@Override

View File

@ -3,7 +3,7 @@ plugins {
}
dependencies {
implementation("io.opentelemetry:opentelemetry-extension-aws")
implementation("io.opentelemetry.contrib:opentelemetry-aws-xray-propagator")
library("com.amazonaws:aws-java-sdk-core:1.11.0")

View File

@ -7,6 +7,7 @@ package io.opentelemetry.instrumentation.awssdk.v1_11;
import io.opentelemetry.context.Context;
import io.opentelemetry.context.propagation.TextMapGetter;
import io.opentelemetry.contrib.awsxray.propagator.AwsXrayPropagator;
import java.util.Collections;
import java.util.Map;
@ -28,10 +29,9 @@ final class SqsParentContext {
static final String AWS_TRACE_SYSTEM_ATTRIBUTE = "AWSTraceHeader";
@SuppressWarnings("deprecation") // deprecated class to be updated once published in new location
static Context ofSystemAttributes(Map<String, String> systemAttributes) {
String traceHeader = systemAttributes.get(AWS_TRACE_SYSTEM_ATTRIBUTE);
return io.opentelemetry.extension.aws.AwsXrayPropagator.getInstance()
return AwsXrayPropagator.getInstance()
.extract(
Context.root(),
Collections.singletonMap("X-Amzn-Trace-Id", traceHeader),

View File

@ -11,6 +11,7 @@ import com.amazonaws.Response;
import com.amazonaws.handlers.HandlerContextKey;
import com.amazonaws.handlers.RequestHandler2;
import io.opentelemetry.context.Context;
import io.opentelemetry.contrib.awsxray.propagator.AwsXrayPropagator;
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import java.util.List;
import javax.annotation.Nullable;
@ -40,8 +41,7 @@ final class TracingRequestHandler extends RequestHandler2 {
}
Context context = requestInstrumenter.start(parentContext, request);
io.opentelemetry.extension.aws.AwsXrayPropagator.getInstance()
.inject(context, request, HeaderSetter.INSTANCE);
AwsXrayPropagator.getInstance().inject(context, request, HeaderSetter.INSTANCE);
request.addHandlerContext(CONTEXT, context);
}

View File

@ -27,7 +27,7 @@ public class AwsSdkInstrumentationModule extends InstrumentationModule {
@Override
public boolean isHelperClass(String className) {
return className.startsWith("io.opentelemetry.extension.aws.");
return className.startsWith("io.opentelemetry.contrib.awsxray.");
}
/**

View File

@ -3,7 +3,7 @@ plugins {
}
dependencies {
implementation("io.opentelemetry:opentelemetry-extension-aws")
implementation("io.opentelemetry.contrib:opentelemetry-aws-xray-propagator")
library("software.amazon.awssdk:aws-core:2.2.0")
library("software.amazon.awssdk:aws-json-protocol:2.2.0")

View File

@ -7,6 +7,7 @@ package io.opentelemetry.instrumentation.awssdk.v2_2;
import io.opentelemetry.context.Context;
import io.opentelemetry.context.propagation.TextMapGetter;
import io.opentelemetry.contrib.awsxray.propagator.AwsXrayPropagator;
import java.util.Collections;
import java.util.Map;
@ -28,10 +29,9 @@ final class SqsParentContext {
static final String AWS_TRACE_SYSTEM_ATTRIBUTE = "AWSTraceHeader";
@SuppressWarnings("deprecation") // deprecated class to be updated once published in new location
static Context ofSystemAttributes(Map<String, String> systemAttributes) {
String traceHeader = systemAttributes.get(AWS_TRACE_SYSTEM_ATTRIBUTE);
return io.opentelemetry.extension.aws.AwsXrayPropagator.getInstance()
return AwsXrayPropagator.getInstance()
.extract(
Context.root(),
Collections.singletonMap("X-Amzn-Trace-Id", traceHeader),

View File

@ -9,6 +9,7 @@ import static io.opentelemetry.instrumentation.awssdk.v2_2.AwsSdkRequestType.DYN
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.context.Scope;
import io.opentelemetry.contrib.awsxray.propagator.AwsXrayPropagator;
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
import java.util.ArrayList;
@ -134,8 +135,7 @@ final class TracingExecutionInterceptor implements ExecutionInterceptor {
}
SdkHttpRequest.Builder builder = httpRequest.toBuilder();
io.opentelemetry.extension.aws.AwsXrayPropagator.getInstance()
.inject(otelContext, builder, RequestHeaderSetter.INSTANCE);
AwsXrayPropagator.getInstance().inject(otelContext, builder, RequestHeaderSetter.INSTANCE);
return builder.build();
}

View File

@ -31,7 +31,7 @@ dependencies {
compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
compileOnly("io.opentelemetry:opentelemetry-extension-annotations")
compileOnly("io.opentelemetry:opentelemetry-extension-trace-propagators")
compileOnly("io.opentelemetry:opentelemetry-extension-aws")
compileOnly("io.opentelemetry.contrib:opentelemetry-aws-xray-propagator")
compileOnly("io.opentelemetry:opentelemetry-exporter-logging")
compileOnly("io.opentelemetry:opentelemetry-exporter-jaeger")
compileOnly("io.opentelemetry:opentelemetry-exporter-otlp")
@ -59,7 +59,7 @@ dependencies {
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
testImplementation("io.opentelemetry:opentelemetry-extension-annotations")
testImplementation("io.opentelemetry:opentelemetry-extension-trace-propagators")
testImplementation("io.opentelemetry:opentelemetry-extension-aws")
testImplementation("io.opentelemetry.contrib:opentelemetry-aws-xray-propagator")
testImplementation("io.opentelemetry:opentelemetry-exporter-logging")
testImplementation("io.opentelemetry:opentelemetry-exporter-jaeger")
testImplementation("io.opentelemetry:opentelemetry-exporter-otlp")

View File

@ -10,6 +10,7 @@ import static java.util.logging.Level.WARNING;
import io.opentelemetry.api.baggage.propagation.W3CBaggagePropagator;
import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator;
import io.opentelemetry.context.propagation.TextMapPropagator;
import io.opentelemetry.contrib.awsxray.propagator.AwsXrayPropagator;
import io.opentelemetry.extension.trace.propagation.B3Propagator;
import io.opentelemetry.extension.trace.propagation.JaegerPropagator;
import io.opentelemetry.extension.trace.propagation.OtTracePropagator;
@ -67,11 +68,11 @@ public final class CompositeTextMapPropagatorFactory {
}
break;
case "xray":
if (isOnClasspath("io.opentelemetry.extension.aws.AwsXrayPropagator")) {
if (isOnClasspath("io.opentelemetry.contrib.awsxray.AwsXrayPropagator")) {
propagators.add(
beanFactory
.getBeanProvider(io.opentelemetry.extension.aws.AwsXrayPropagator.class)
.getIfAvailable(io.opentelemetry.extension.aws.AwsXrayPropagator::getInstance));
.getBeanProvider(AwsXrayPropagator.class)
.getIfAvailable(AwsXrayPropagator::getInstance));
}
break;
case "tracecontext":

View File

@ -23,7 +23,6 @@ dependencies {
implementation("io.opentelemetry:opentelemetry-sdk-metrics")
implementation("io.opentelemetry:opentelemetry-sdk-logs")
implementation("io.opentelemetry:opentelemetry-extension-kotlin")
implementation("io.opentelemetry:opentelemetry-extension-aws")
implementation("io.opentelemetry:opentelemetry-extension-trace-propagators")
// the incubator's ViewConfigCustomizer is used to support loading yaml-based metric views
implementation("io.opentelemetry:opentelemetry-sdk-extension-incubator")
@ -40,6 +39,8 @@ dependencies {
implementation("io.opentelemetry:opentelemetry-sdk-extension-jaeger-remote-sampler")
implementation("io.opentelemetry.contrib:opentelemetry-aws-xray-propagator")
api("net.bytebuddy:byte-buddy-dep")
annotationProcessor("com.google.auto.service:auto-service")

34
licenses/licenses.md generated
View File

@ -1,7 +1,7 @@
#javaagent
##Dependency License Report
_2022-11-18 08:34:48 PST_
_2022-11-18 15:15:18 CST_
## Apache License, Version 2.0
**1** **Group:** `com.blogspot.mydailyjava` **Name:** `weak-lock-free` **Version:** `0.18`
@ -85,58 +85,58 @@ _2022-11-18 08:34:48 PST_
> - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java)
> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
**19** **Group:** `io.opentelemetry` **Name:** `opentelemetry-extension-aws` **Version:** `1.20.1`
**19** **Group:** `io.opentelemetry` **Name:** `opentelemetry-extension-kotlin` **Version:** `1.20.1`
> - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java)
> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
**20** **Group:** `io.opentelemetry` **Name:** `opentelemetry-extension-kotlin` **Version:** `1.20.1`
**20** **Group:** `io.opentelemetry` **Name:** `opentelemetry-extension-trace-propagators` **Version:** `1.20.1`
> - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java)
> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
**21** **Group:** `io.opentelemetry` **Name:** `opentelemetry-extension-trace-propagators` **Version:** `1.20.1`
**21** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk` **Version:** `1.20.1`
> - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java)
> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
**22** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk` **Version:** `1.20.1`
**22** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-common` **Version:** `1.20.1`
> - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java)
> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
**23** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-common` **Version:** `1.20.1`
**23** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-extension-autoconfigure` **Version:** `1.20.1-alpha`
> - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java)
> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
**24** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-extension-autoconfigure` **Version:** `1.20.1-alpha`
**24** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-extension-autoconfigure-spi` **Version:** `1.20.1`
> - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java)
> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
**25** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-extension-autoconfigure-spi` **Version:** `1.20.1`
**25** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-extension-incubator` **Version:** `1.20.1-alpha`
> - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java)
> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
**26** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-extension-incubator` **Version:** `1.20.1-alpha`
**26** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-extension-jaeger-remote-sampler` **Version:** `1.20.1`
> - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java)
> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
**27** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-extension-jaeger-remote-sampler` **Version:** `1.20.1`
**27** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-logs` **Version:** `1.20.1-alpha`
> - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java)
> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
**28** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-logs` **Version:** `1.20.1-alpha`
**28** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-metrics` **Version:** `1.20.1`
> - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java)
> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
**29** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-metrics` **Version:** `1.20.1`
**29** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-trace` **Version:** `1.20.1`
> - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java)
> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
**30** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-trace` **Version:** `1.20.1`
> - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java)
> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
**31** **Group:** `io.opentelemetry` **Name:** `opentelemetry-semconv` **Version:** `1.20.1-alpha`
**30** **Group:** `io.opentelemetry` **Name:** `opentelemetry-semconv` **Version:** `1.20.1-alpha`
> - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java)
> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
**31** **Group:** `io.opentelemetry.contrib` **Name:** `opentelemetry-aws-xray-propagator` **Version:** `1.20.0-alpha`
> - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java-contrib](https://github.com/open-telemetry/opentelemetry-java-contrib)
> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
**32** **Group:** `io.zipkin.reporter2` **Name:** `zipkin-reporter` **Version:** `2.16.3`
> - **Manifest Project URL**: [https://zipkin.io/](https://zipkin.io/)
> - **Manifest License**: Apache License, Version 2.0 (Not Packaged)