Skip to content

Commit 855df7f

Browse files
authored
add end to end test for declarative config for aws (#2047)
1 parent 348a525 commit 855df7f

File tree

12 files changed

+172
-26
lines changed

12 files changed

+172
-26
lines changed

aws-resources/build.gradle.kts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,24 @@ dependencies {
2121
implementation("com.squareup.okhttp3:okhttp")
2222

2323
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")
24+
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-incubator")
2425
testImplementation("io.opentelemetry:opentelemetry-api-incubator")
2526
testImplementation("io.opentelemetry:opentelemetry-sdk-testing")
27+
testImplementation("io.opentelemetry:opentelemetry-exporter-logging")
2628

2729
testImplementation("com.linecorp.armeria:armeria-junit5")
2830
testRuntimeOnly("org.bouncycastle:bcpkix-jdk15on")
2931
testImplementation("com.google.guava:guava")
3032
testImplementation("org.skyscreamer:jsonassert")
3133
}
34+
35+
tasks {
36+
withType<Test>().configureEach {
37+
environment(
38+
"AWS_REGION" to "us-east-1",
39+
"AWS_LAMBDA_FUNCTION_NAME" to "my-function",
40+
"AWS_LAMBDA_FUNCTION_VERSION" to "1.2.3"
41+
)
42+
jvmArgs("-Dotel.experimental.config.file=${project.projectDir.resolve("src/test/resources/declarative-config.yaml")}")
43+
}
44+
}

aws-resources/src/test/java/io/opentelemetry/contrib/aws/resource/ResourceComponentProviderTest.java

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,28 @@
77

88
import static org.assertj.core.api.Assertions.assertThat;
99

10-
import io.opentelemetry.common.ComponentLoader;
11-
import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider;
10+
import io.opentelemetry.api.common.Attributes;
11+
import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
12+
import io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions;
13+
import io.opentelemetry.semconv.incubating.CloudIncubatingAttributes;
14+
import org.assertj.core.api.InstanceOfAssertFactory;
1215
import org.junit.jupiter.api.Test;
1316

1417
class ResourceComponentProviderTest {
15-
1618
@Test
17-
@SuppressWarnings("rawtypes")
18-
void providerIsLoaded() {
19-
Iterable<ComponentProvider> providers =
20-
ComponentLoader.forClassLoader(ResourceComponentProviderTest.class.getClassLoader())
21-
.load(ComponentProvider.class);
22-
assertThat(providers).extracting(ComponentProvider::getName).containsExactly("aws");
19+
void endToEnd() {
20+
assertThat(
21+
AutoConfiguredOpenTelemetrySdk.builder()
22+
.build()
23+
.getOpenTelemetrySdk()
24+
.getSdkTracerProvider())
25+
.extracting("sharedState")
26+
.extracting("resource")
27+
.extracting(
28+
"attributes",
29+
new InstanceOfAssertFactory<>(Attributes.class, OpenTelemetryAssertions::assertThat))
30+
.containsEntry(
31+
CloudIncubatingAttributes.CLOUD_PROVIDER,
32+
CloudIncubatingAttributes.CloudProviderIncubatingValues.AWS);
2333
}
2434
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
file_format: "1.0-rc.1"
2+
resource:
3+
detection/development:
4+
detectors:
5+
- aws:
6+
tracer_provider:
7+
processors:
8+
- simple:
9+
exporter:
10+
console:

azure-resources/build.gradle.kts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,22 @@ dependencies {
2929
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")
3030
testImplementation("io.opentelemetry:opentelemetry-api-incubator")
3131
testImplementation("io.opentelemetry:opentelemetry-sdk-testing")
32+
testImplementation("io.opentelemetry:opentelemetry-exporter-logging")
33+
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-incubator")
3234

3335
testImplementation("com.google.guava:guava")
3436

3537
testImplementation("org.junit.jupiter:junit-jupiter-api")
3638
testImplementation("org.assertj:assertj-core")
3739
testImplementation("com.linecorp.armeria:armeria-junit5")
3840
}
41+
42+
tasks {
43+
withType<Test>().configureEach {
44+
environment(
45+
"WEBSITE_SITE_NAME" to "my-function",
46+
"FUNCTIONS_EXTENSION_VERSION" to "1.2.3"
47+
)
48+
jvmArgs("-Dotel.experimental.config.file=${project.projectDir.resolve("src/test/resources/declarative-config.yaml")}")
49+
}
50+
}

azure-resources/src/test/java/io/opentelemetry/contrib/azure/resource/ResourceComponentProviderTest.java

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,29 @@
77

88
import static org.assertj.core.api.Assertions.assertThat;
99

10-
import io.opentelemetry.common.ComponentLoader;
11-
import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider;
10+
import io.opentelemetry.api.common.Attributes;
11+
import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
12+
import io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions;
13+
import io.opentelemetry.semconv.incubating.CloudIncubatingAttributes;
14+
import org.assertj.core.api.InstanceOfAssertFactory;
1215
import org.junit.jupiter.api.Test;
1316

1417
class ResourceComponentProviderTest {
1518

1619
@Test
17-
@SuppressWarnings("rawtypes")
18-
void providerIsLoaded() {
19-
Iterable<ComponentProvider> providers =
20-
ComponentLoader.forClassLoader(ResourceComponentProviderTest.class.getClassLoader())
21-
.load(ComponentProvider.class);
22-
assertThat(providers).extracting(ComponentProvider::getName).containsExactly("azure");
20+
void endToEnd() {
21+
assertThat(
22+
AutoConfiguredOpenTelemetrySdk.builder()
23+
.build()
24+
.getOpenTelemetrySdk()
25+
.getSdkTracerProvider())
26+
.extracting("sharedState")
27+
.extracting("resource")
28+
.extracting(
29+
"attributes",
30+
new InstanceOfAssertFactory<>(Attributes.class, OpenTelemetryAssertions::assertThat))
31+
.containsEntry(
32+
CloudIncubatingAttributes.CLOUD_PROVIDER,
33+
CloudIncubatingAttributes.CloudProviderIncubatingValues.AZURE);
2334
}
2435
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
file_format: "1.0-rc.1"
2+
resource:
3+
detection/development:
4+
detectors:
5+
- azure:
6+
tracer_provider:
7+
processors:
8+
- simple:
9+
exporter:
10+
console:

cloudfoundry-resources/build.gradle.kts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,35 @@ dependencies {
2323
testImplementation("io.opentelemetry:opentelemetry-api-incubator")
2424
testImplementation("io.opentelemetry:opentelemetry-sdk-testing")
2525
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
26+
testImplementation("io.opentelemetry:opentelemetry-exporter-logging")
27+
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-incubator")
28+
}
29+
30+
tasks {
31+
withType<Test>().configureEach {
32+
environment(
33+
"VCAP_APPLICATION" to """
34+
{
35+
"application_id": "0193a038-e615-7e5e-92ca-f4bcd7ba0a25",
36+
"application_name": "cf-app-name",
37+
"application_uris": [
38+
"testapp.example.com"
39+
],
40+
"cf_api": "https://api.cf.example.com",
41+
"limits": {
42+
"fds": 256
43+
},
44+
"instance_index": 1,
45+
"organization_id": "0193a375-8d8e-7e0c-a832-01ce9ded40dc",
46+
"organization_name": "cf-org-name",
47+
"process_id": "0193a4e3-8fd3-71b9-9fe3-5640c53bf1e2",
48+
"process_type": "web",
49+
"space_id": "0193a7e7-da17-7ea4-8940-b1e07b401b16",
50+
"space_name": "cf-space-name",
51+
"users": null
52+
}
53+
""".trimIndent(),
54+
)
55+
jvmArgs("-Dotel.experimental.config.file=${project.projectDir.resolve("src/test/resources/declarative-config.yaml")}")
56+
}
2657
}

cloudfoundry-resources/src/test/java/io/opentelemetry/contrib/cloudfoundry/resources/ResourceComponentProviderTest.java

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,25 @@
77

88
import static org.assertj.core.api.Assertions.assertThat;
99

10-
import io.opentelemetry.common.ComponentLoader;
11-
import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider;
10+
import io.opentelemetry.api.common.Attributes;
11+
import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
12+
import io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions;
13+
import org.assertj.core.api.InstanceOfAssertFactory;
1214
import org.junit.jupiter.api.Test;
1315

1416
class ResourceComponentProviderTest {
15-
1617
@Test
17-
@SuppressWarnings("rawtypes")
18-
void providerIsLoaded() {
19-
Iterable<ComponentProvider> providers =
20-
ComponentLoader.forClassLoader(ResourceComponentProviderTest.class.getClassLoader())
21-
.load(ComponentProvider.class);
22-
assertThat(providers).extracting(ComponentProvider::getName).containsExactly("cloud_foundry");
18+
void endToEnd() {
19+
assertThat(
20+
AutoConfiguredOpenTelemetrySdk.builder()
21+
.build()
22+
.getOpenTelemetrySdk()
23+
.getSdkTracerProvider())
24+
.extracting("sharedState")
25+
.extracting("resource")
26+
.extracting(
27+
"attributes",
28+
new InstanceOfAssertFactory<>(Attributes.class, OpenTelemetryAssertions::assertThat))
29+
.containsEntry("cloudfoundry.app.name", "cf-app-name");
2330
}
2431
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
file_format: "1.0-rc.1"
2+
resource:
3+
detection/development:
4+
detectors:
5+
- cloud_foundry:
6+
tracer_provider:
7+
processors:
8+
- simple:
9+
exporter:
10+
console:

maven-extension/build.gradle.kts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,10 @@ dependencies {
3333
compileOnly("org.apache.maven:maven-core:3.5.0") // do not auto-update, support older mvn versions
3434
compileOnly("org.slf4j:slf4j-api")
3535

36+
testImplementation("io.opentelemetry:opentelemetry-sdk-testing")
3637
testImplementation("io.opentelemetry:opentelemetry-api-incubator")
38+
testImplementation("io.opentelemetry:opentelemetry-exporter-logging")
39+
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-incubator")
3740
testImplementation("org.apache.maven:maven-core:3.5.0")
3841
testImplementation("org.slf4j:slf4j-simple")
3942
}

0 commit comments

Comments
 (0)