Skip to content

Commit e1050fa

Browse files
author
Anuraag Agrawal
authored
Add xray configurable sampler (#64)
* Add xray configurable sampler * Check name
1 parent 236b9e6 commit e1050fa

File tree

4 files changed

+60
-0
lines changed

4 files changed

+60
-0
lines changed

aws-xray/build.gradle.kts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,23 @@ dependencies {
1515
api("io.opentelemetry:opentelemetry-api")
1616
api("io.opentelemetry:opentelemetry-sdk-trace")
1717

18+
compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")
19+
1820
implementation("io.opentelemetry:opentelemetry-semconv")
1921

2022
compileOnly("org.checkerframework:checker-qual")
2123

24+
annotationProcessor("com.google.auto.service:auto-service")
25+
compileOnly("com.google.auto.service:auto-service-annotations")
26+
2227
annotationProcessor("com.google.auto.value:auto-value")
2328
compileOnly("com.google.auto.value:auto-value-annotations")
2429

2530
implementation("com.fasterxml.jackson.core:jackson-core")
2631
implementation("com.fasterxml.jackson.core:jackson-databind")
2732

2833
testImplementation("com.linecorp.armeria:armeria-junit5")
34+
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")
2935
testImplementation("io.opentelemetry:opentelemetry-sdk-testing")
3036
testImplementation("com.google.guava:guava")
3137
testImplementation("org.slf4j:slf4j-simple")
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
package io.opentelemetry.contrib.awsxray;
6+
7+
import com.google.auto.service.AutoService;
8+
import io.opentelemetry.sdk.autoconfigure.ConfigProperties;
9+
import io.opentelemetry.sdk.autoconfigure.OpenTelemetrySdkAutoConfiguration;
10+
import io.opentelemetry.sdk.autoconfigure.spi.ConfigurableSamplerProvider;
11+
import io.opentelemetry.sdk.trace.samplers.Sampler;
12+
13+
@AutoService(ConfigurableSamplerProvider.class)
14+
public class AwsXrayRemoteSamplerProvider implements ConfigurableSamplerProvider {
15+
16+
@Override
17+
public Sampler createSampler(ConfigProperties config) {
18+
return AwsXrayRemoteSampler.newBuilder(OpenTelemetrySdkAutoConfiguration.getResource()).build();
19+
}
20+
21+
@Override
22+
public String getName() {
23+
return "xray";
24+
}
25+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
package io.opentelemetry.contrib.awsxray;
6+
7+
import static org.assertj.core.api.Assertions.assertThat;
8+
import static org.assertj.core.api.InstanceOfAssertFactories.type;
9+
10+
import io.opentelemetry.sdk.autoconfigure.spi.ConfigurableSamplerProvider;
11+
import java.util.ServiceLoader;
12+
import org.junit.jupiter.api.Test;
13+
14+
class AwsXrayRemoteSamplerProviderTest {
15+
16+
@Test
17+
void serviceProvider() {
18+
ServiceLoader<ConfigurableSamplerProvider> samplerProviders =
19+
ServiceLoader.load(ConfigurableSamplerProvider.class);
20+
assertThat(samplerProviders)
21+
.singleElement(type(AwsXrayRemoteSamplerProvider.class))
22+
.satisfies(provider -> assertThat(provider.getName()).isEqualTo("xray"));
23+
}
24+
}

dependencyManagement/build.gradle.kts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ val DEPENDENCY_BOMS = listOf(
2323
)
2424

2525
val DEPENDENCY_SETS = listOf(
26+
DependencySet(
27+
"com.google.auto.service",
28+
"1.0",
29+
listOf("auto-service", "auto-service-annotations")
30+
),
2631
DependencySet(
2732
"com.google.auto.value",
2833
"1.8.1",

0 commit comments

Comments
 (0)