diff --git a/aws-resources/build.gradle.kts b/aws-resources/build.gradle.kts index 580ecb44f..770494744 100644 --- a/aws-resources/build.gradle.kts +++ b/aws-resources/build.gradle.kts @@ -21,11 +21,25 @@ dependencies { implementation("com.squareup.okhttp3:okhttp") testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure") + testImplementation("io.opentelemetry:opentelemetry-sdk-extension-incubator") testImplementation("io.opentelemetry:opentelemetry-api-incubator") testImplementation("io.opentelemetry:opentelemetry-sdk-testing") + testImplementation("io.opentelemetry:opentelemetry-exporter-logging") testImplementation("com.linecorp.armeria:armeria-junit5") testRuntimeOnly("org.bouncycastle:bcpkix-jdk15on") testImplementation("com.google.guava:guava") testImplementation("org.skyscreamer:jsonassert") + testImplementation("org.junit-pioneer:junit-pioneer") +} + +tasks { + withType().configureEach { + environment( + "AWS_REGION" to "us-east-1", + "AWS_LAMBDA_FUNCTION_NAME" to "my-function", + "AWS_LAMBDA_FUNCTION_VERSION" to "1.2.3" + ) + jvmArgs("-Dotel.experimental.config.file=${project.projectDir.resolve("src/test/resources/config.yaml")}") + } } diff --git a/aws-resources/src/test/java/io/opentelemetry/contrib/aws/resource/ResourceComponentProviderTest.java b/aws-resources/src/test/java/io/opentelemetry/contrib/aws/resource/ResourceComponentProviderTest.java index 1534aca17..3d6676501 100644 --- a/aws-resources/src/test/java/io/opentelemetry/contrib/aws/resource/ResourceComponentProviderTest.java +++ b/aws-resources/src/test/java/io/opentelemetry/contrib/aws/resource/ResourceComponentProviderTest.java @@ -7,8 +7,13 @@ import static org.assertj.core.api.Assertions.assertThat; +import io.opentelemetry.api.common.Attributes; import io.opentelemetry.common.ComponentLoader; +import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk; import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions; +import io.opentelemetry.semconv.incubating.CloudIncubatingAttributes; +import org.assertj.core.api.InstanceOfAssertFactory; import org.junit.jupiter.api.Test; class ResourceComponentProviderTest { @@ -19,6 +24,22 @@ void providerIsLoaded() { Iterable providers = ComponentLoader.forClassLoader(ResourceComponentProviderTest.class.getClassLoader()) .load(ComponentProvider.class); - assertThat(providers).extracting(ComponentProvider::getName).containsExactly("aws"); + assertThat(providers).extracting(ComponentProvider::getName).contains("aws"); + } + + @Test + void endToEnd() { + assertThat( + AutoConfiguredOpenTelemetrySdk.initialize() + .getOpenTelemetrySdk() + .getSdkTracerProvider()) + .extracting("sharedState") + .extracting("resource") + .extracting( + "attributes", + new InstanceOfAssertFactory<>(Attributes.class, OpenTelemetryAssertions::assertThat)) + .containsEntry( + CloudIncubatingAttributes.CLOUD_PROVIDER, + CloudIncubatingAttributes.CloudProviderIncubatingValues.AWS); } } diff --git a/aws-resources/src/test/resources/config.yaml b/aws-resources/src/test/resources/config.yaml new file mode 100644 index 000000000..da52af7d7 --- /dev/null +++ b/aws-resources/src/test/resources/config.yaml @@ -0,0 +1,10 @@ +file_format: "1.0-rc.1" +resource: + detection/development: + detectors: + - aws: +tracer_provider: + processors: + - simple: + exporter: + console: