Skip to content

Commit 93e8e70

Browse files
committed
aws component provider
1 parent dccc3f0 commit 93e8e70

File tree

4 files changed

+59
-0
lines changed

4 files changed

+59
-0
lines changed

aws-resources/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ otelJava.moduleName.set("io.opentelemetry.contrib.aws.resource")
99

1010
dependencies {
1111
api("io.opentelemetry:opentelemetry-api")
12+
compileOnly("io.opentelemetry:opentelemetry-api-incubator")
1213
api("io.opentelemetry:opentelemetry-sdk")
1314

1415
implementation("io.opentelemetry.semconv:opentelemetry-semconv")
@@ -20,6 +21,7 @@ dependencies {
2021
implementation("com.squareup.okhttp3:okhttp")
2122

2223
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")
24+
testImplementation("io.opentelemetry:opentelemetry-api-incubator")
2325
testImplementation("io.opentelemetry:opentelemetry-sdk-testing")
2426

2527
testImplementation("com.linecorp.armeria:armeria-junit5")
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.contrib.aws.resource;
7+
8+
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
9+
import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider;
10+
import io.opentelemetry.sdk.resources.Resource;
11+
import io.opentelemetry.sdk.resources.ResourceBuilder;
12+
13+
public class AwsResourceDetector implements ComponentProvider<Resource> {
14+
15+
@Override
16+
public Class<Resource> getType() {
17+
return Resource.class;
18+
}
19+
20+
@Override
21+
public String getName() {
22+
return "aws";
23+
}
24+
25+
@Override
26+
public Resource create(DeclarativeConfigProperties config) {
27+
ResourceBuilder builder = Resource.builder();
28+
builder.putAll(BeanstalkResource.get());
29+
builder.putAll(Ec2Resource.get());
30+
builder.putAll(EcsResource.get());
31+
builder.putAll(EksResource.get());
32+
builder.putAll(LambdaResource.get());
33+
return builder.build();
34+
}
35+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
io.opentelemetry.contrib.aws.resource.AwsResourceDetector
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package io.opentelemetry.contrib.aws.resource;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
5+
import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper;
6+
import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider;
7+
import org.junit.jupiter.api.Test;
8+
import java.util.List;
9+
10+
public class ComponentProviderTest {
11+
12+
@Test
13+
void providerIsLoaded() {
14+
@SuppressWarnings("rawtypes")
15+
List<ComponentProvider> providers = SpiHelper.create(
16+
ComponentProviderTest.class.getClassLoader())
17+
.load(ComponentProvider.class);
18+
assertThat(providers).extracting(ComponentProvider::getName)
19+
.containsExactly("aws");
20+
}
21+
}

0 commit comments

Comments
 (0)