Skip to content

Commit

Permalink
bug: replace opentelemetry-sdk-extension-aws mentions (#541)
Browse files Browse the repository at this point in the history
* test: adds a test-suite-xray module

This adds a test-suite-xray module to verify the following dependencies are resolvables without specifying the version:

io.opentelemetry:opentelemetry-exporter-otlp
io.opentelemetry:opentelemetry-extension-aws
io.opentelemetry.instrumentation:opentelemetry-aws-sdk-2.2

* bug: replace opentelemetry-sdk-extension-aws mentions

It replaces :

```
io.opentelemetry:opentelemetry-sdk-extension-aws
```

with:

```
io.opentelemetry.contrib:opentelemetry-aws-resources
```

and:

```
io.opentelemetry.contrib:opentelemetry-aws-xray-propagator
```

see:

open-telemetry/opentelemetry-java#4945
open-telemetry/opentelemetry-java#4831

it updates to https://github.com/open-telemetry/opentelemetry-java-contrib 1.34.0-Alpha

> Version 1.34.0 targets the OpenTelemetry SDK 1.34.0.

As we are in 1.36.0 I think this is the correct version to use for it.
  • Loading branch information
sdelamo committed Apr 15, 2024
1 parent f27e1cb commit 3c5035f
Show file tree
Hide file tree
Showing 7 changed files with 68 additions and 4 deletions.
8 changes: 6 additions & 2 deletions gradle/libs.versions.toml
Expand Up @@ -13,7 +13,7 @@ managed-opentelemetry-alpha = '1.36.0-alpha'
managed-opentelemetry-instrumentation = '1.33.1'
managed-opentelemetry-instrumentation-alpha = '1.33.1-alpha'
managed-opentelemetry-contrib-aws-xray = '1.34.0'
managed-opentelemetry-contrib-aws-resources = '1.31.0-alpha'
managed-opentelemetry-contrib-aws-resources = '1.34.0-alpha'
managed-opentelemetry-gcp-trace = '0.27.0-alpha'
managed-opentelemetry-semconv = '1.21.0-alpha'
managed-protobuf = '0.9.4'
Expand Down Expand Up @@ -44,6 +44,7 @@ micronaut-gradle-plugin = "4.3.5"
micronaut-core = { module = 'io.micronaut:micronaut-core-bom', version.ref = 'micronaut' }

managed-opentelemetry-contrib-aws-xray = { module = 'io.opentelemetry.contrib:opentelemetry-aws-xray', version.ref = 'managed-opentelemetry-contrib-aws-xray'}
managed-opentelemetry-contrib-aws-xray-propagator = { module = 'io.opentelemetry.contrib:opentelemetry-aws-xray-propagator', version.ref = 'managed-opentelemetry-contrib-aws-resources' }
managed-opentelemetry-contrib-aws-resources = { module = 'io.opentelemetry.contrib:opentelemetry-aws-resources', version.ref = 'managed-opentelemetry-contrib-aws-resources'}
managed-opentelemetry-gcp-trace = { module = 'com.google.cloud.opentelemetry:exporter-auto', version.ref = 'managed-opentelemetry-gcp-trace'}

Expand Down Expand Up @@ -80,7 +81,7 @@ opentelemetry-sdk = { module = 'io.opentelemetry:opentelemetry-sdk' }
opentelemetry-sdk-testing = { module = 'io.opentelemetry:opentelemetry-sdk-testing' }
opentelemetry-autoconfigure = { module = 'io.opentelemetry:opentelemetry-sdk-extension-autoconfigure' }
opentelemetry-exporter-zipkin = { module = 'io.opentelemetry:opentelemetry-exporter-zipkin', version.ref = 'managed-opentelemetry' }

opentelemetry-exporter-otlp = { module = 'io.opentelemetry:opentelemetry-exporter-otlp'}
opentelemetry-instrumentation-api = { module = 'io.opentelemetry.instrumentation:opentelemetry-instrumentation-api' }
opentelemetry-instrumentation-grpc = { module = 'io.opentelemetry.instrumentation:opentelemetry-grpc-1.6'}
opentelemetry-instrumentation-kafka-common = { module = 'io.opentelemetry.instrumentation:opentelemetry-kafka-clients-common'}
Expand All @@ -91,6 +92,9 @@ opentelemetry-aws-sdk = { module = 'io.opentelemetry.instrumentation:opentelemet

awssdk-core = { module = 'software.amazon.awssdk:sdk-core' }

junit-api = { module = "org.junit.jupiter:junit-jupiter-api" }
junit-engine = { module = "org.junit.jupiter:junit-jupiter-engine" }

# BOMs
boms-opentelemetry = { module = 'io.opentelemetry:opentelemetry-bom', version.ref = 'managed-opentelemetry' }
boms-opentelemetry-alpha = { module = 'io.opentelemetry:opentelemetry-bom-alpha', version.ref = 'managed-opentelemetry-alpha' }
Expand Down
1 change: 1 addition & 0 deletions settings.gradle
Expand Up @@ -34,6 +34,7 @@ include 'tracing-brave-http'

include 'tests:kotlin-tests'
include 'test-suite-java'
include 'test-suite-opentelemetry-xray'

enableFeaturePreview 'TYPESAFE_PROJECT_ACCESSORS'

Expand Down
Expand Up @@ -2,7 +2,7 @@ https://aws-otel.github.io/docs/getting-started/java-sdk/trace-manual-instr#usin

To use AWS resource detectors include the following dependency:

dependency:opentelemetry-sdk-extension-aws[groupId=io.opentelemetry]
dependency:opentelemetry-aws-resources[groupId=io.opentelemetry.contrib]

and provide a bean of type api:tracing.opentelemetry.ResourceProvider[]

Expand Down
2 changes: 1 addition & 1 deletion src/main/docs/guide/opentelemetry/propagators.adoc
Expand Up @@ -2,7 +2,7 @@ In your project you can specify propagators that you want to use. The default on

To use https://docs.aws.amazon.com/xray/latest/devguide/xray-concepts.html#xray-concepts-tracingheader[AWS X-Ray] propagator inside your application you have to add next dependency in your project:

dependency:opentelemetry-extension-aws[scope="implementation", groupId="io.opentelemetry"]
dependency:opentelemetry-aws-xray-propagator[scope="implementation", groupId="io.opentelemetry.contrib"]

And the "xray" has to be added inside configuration file.

Expand Down
28 changes: 28 additions & 0 deletions test-suite-opentelemetry-xray/build.gradle.kts
@@ -0,0 +1,28 @@
plugins {
id("java-library")
}
repositories {
mavenCentral()
}

dependencies {
testRuntimeOnly(mnLogging.logback.classic)

testImplementation(projects.micronautTracingOpentelemetryHttp)
testImplementation(libs.opentelemetry.exporter.otlp)
testImplementation(libs.opentelemetry.aws.sdk)
testImplementation(libs.managed.opentelemetry.contrib.aws.xray.propagator)
testImplementation(libs.managed.opentelemetry.contrib.aws.resources)
testRuntimeOnly(libs.junit.engine)
testAnnotationProcessor(mn.micronaut.inject.java)
testImplementation(mnTest.micronaut.test.junit5)

}
tasks.withType<Test> {
useJUnitPlatform()
}

java {
sourceCompatibility = JavaVersion.toVersion("17")
targetCompatibility = JavaVersion.toVersion("17")
}
@@ -0,0 +1,28 @@
package io.micronaut.tracing.opentelementry.xray.test;

import io.micronaut.context.annotation.Property;
import io.micronaut.core.convert.format.MapFormat;
import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
import org.junit.jupiter.api.Test;

import java.util.Map;
import java.util.stream.Collectors;

import static io.micronaut.core.convert.format.MapFormat.MapTransformation.FLAT;
import static org.junit.jupiter.api.Assertions.assertEquals;

@MicronautTest(startApplication = false)
class OpenTelemetryExclusionsConfigurationTest {

@Test
void possibleToRetrieveConfiguration(@Property(name = "otel") @MapFormat(transformation = FLAT) Map<String, String> otelConfig) {
Map<String, String> otel = otelConfig.entrySet().stream().collect(Collectors.toMap(
e -> "otel." + e.getKey(),
Map.Entry::getValue
));
assertEquals("/health", otel.get("otel.traces.exclusions"));
assertEquals("tracecontext, baggage, xray", otel.get("otel.traces.propagator"));
assertEquals("otlp", otel.get("otel.traces.exporter"));

}
}
@@ -0,0 +1,3 @@
otel.traces.exporter=otlp
otel.traces.propagator=tracecontext, baggage, xray
otel.traces.exclusions=/health

0 comments on commit 3c5035f

Please sign in to comment.