diff --git a/aws-xray/build.gradle.kts b/aws-xray/build.gradle.kts index 54dabba71..5daa79019 100644 --- a/aws-xray/build.gradle.kts +++ b/aws-xray/build.gradle.kts @@ -11,6 +11,7 @@ dependencies { api("io.opentelemetry:opentelemetry-sdk-trace") compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure") + compileOnly("io.opentelemetry:opentelemetry-sdk-extension-incubator") implementation("com.squareup.okhttp3:okhttp") implementation("io.opentelemetry.semconv:opentelemetry-semconv") @@ -28,6 +29,7 @@ dependencies { testImplementation("com.linecorp.armeria:armeria-junit5") testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure") + testImplementation("io.opentelemetry:opentelemetry-sdk-extension-incubator") testImplementation("io.opentelemetry:opentelemetry-sdk-testing") testImplementation("com.google.guava:guava") testImplementation("org.slf4j:slf4j-simple") diff --git a/aws-xray/src/main/java/io/opentelemetry/contrib/awsxray/AwsXrayRemoteSampler.java b/aws-xray/src/main/java/io/opentelemetry/contrib/awsxray/AwsXrayRemoteSampler.java index 9c997f042..0cc420576 100644 --- a/aws-xray/src/main/java/io/opentelemetry/contrib/awsxray/AwsXrayRemoteSampler.java +++ b/aws-xray/src/main/java/io/opentelemetry/contrib/awsxray/AwsXrayRemoteSampler.java @@ -49,6 +49,7 @@ public final class AwsXrayRemoteSampler implements Sampler, Closeable { private final Resource resource; private final Clock clock; + private final String endpoint; private final Sampler initialSampler; private final XraySamplerClient client; private final ScheduledExecutorService executor; @@ -81,6 +82,7 @@ public static AwsXrayRemoteSamplerBuilder newBuilder(Resource resource) { long pollingIntervalNanos) { this.resource = resource; this.clock = clock; + this.endpoint = endpoint; this.initialSampler = initialSampler; client = new XraySamplerClient(endpoint); executor = @@ -240,4 +242,9 @@ XraySamplerClient getClient() { Resource getResource() { return resource; } + + @Override + public String toString() { + return "AwsXrayRemoteSampler{endpoint=" + endpoint + '}'; + } } diff --git a/aws-xray/src/main/java/io/opentelemetry/contrib/awsxray/internal/AwsXrayRemoteSamplerComponentProvider.java b/aws-xray/src/main/java/io/opentelemetry/contrib/awsxray/internal/AwsXrayRemoteSamplerComponentProvider.java new file mode 100644 index 000000000..cfebb6454 --- /dev/null +++ b/aws-xray/src/main/java/io/opentelemetry/contrib/awsxray/internal/AwsXrayRemoteSamplerComponentProvider.java @@ -0,0 +1,47 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.contrib.awsxray.internal; + +import com.google.auto.service.AutoService; +import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; +import io.opentelemetry.contrib.awsxray.AwsXrayRemoteSampler; +import io.opentelemetry.contrib.awsxray.AwsXrayRemoteSamplerBuilder; +import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider; +import io.opentelemetry.sdk.resources.Resource; +import io.opentelemetry.sdk.trace.samplers.Sampler; + +/** + * File configuration SPI implementation for {@link AwsXrayRemoteSampler}. + * + *
This class is internal and is hence not for public use. Its APIs are unstable and can change
+ * at any time.
+ */
+@SuppressWarnings("rawtypes")
+@AutoService(ComponentProvider.class)
+public class AwsXrayRemoteSamplerComponentProvider implements ComponentProvider