diff --git a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/resources/ResourceCustomizerProvider.java b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/resources/ResourceCustomizerProvider.java index 0beebe01d112..6a1a39784f31 100644 --- a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/resources/ResourceCustomizerProvider.java +++ b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/resources/ResourceCustomizerProvider.java @@ -11,7 +11,7 @@ import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalResourceDetectionModel; import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalResourceDetectorModel; import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ResourceModel; -import java.util.Collections; +import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.Set; @@ -26,8 +26,10 @@ public class ResourceCustomizerProvider implements DeclarativeConfigurationCusto // opentelemetry-javaagent-distribution: adds "distro.name" and "distro.version" attributes // (DistroComponentProvider in this package) + // service: adds "service.name" and "service.instance.id" attributes + // (https://github.com/open-telemetry/opentelemetry-java/blob/main/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/ServiceResourceDetector.java) private static final List REQUIRED_DETECTORS = - Collections.singletonList("opentelemetry-javaagent-distribution"); + Arrays.asList("opentelemetry-javaagent-distribution", "service"); @Override public void customize(DeclarativeConfigurationCustomizer customizer) { diff --git a/javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/resources/ResourceCustomizerProviderTest.java b/javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/resources/ResourceCustomizerProviderTest.java index 5b50cc913437..4136c8e6ddc7 100644 --- a/javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/resources/ResourceCustomizerProviderTest.java +++ b/javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/resources/ResourceCustomizerProviderTest.java @@ -27,7 +27,10 @@ void customize() { try { assertThat(objectMapper.writeValueAsString(configurationModel.getResource())) .isEqualTo( - "{\"attributes\":[],\"detection/development\":{\"detectors\":[{\"opentelemetry-javaagent-distribution\":null}]}}"); + "{\"attributes\":[],\"detection/development\":{\"detectors\":[" + + "{\"service\":null}," + + "{\"opentelemetry-javaagent-distribution\":null}" + + "]}}"); } catch (JsonProcessingException e) { throw new AssertionError(e); } diff --git a/smoke-tests/src/test/groovy/io/opentelemetry/smoketest/DeclarativeConfigurationSmokeTest.groovy b/smoke-tests/src/test/groovy/io/opentelemetry/smoketest/DeclarativeConfigurationSmokeTest.groovy index 54fd5c6563a0..f629b4143f5b 100644 --- a/smoke-tests/src/test/groovy/io/opentelemetry/smoketest/DeclarativeConfigurationSmokeTest.groovy +++ b/smoke-tests/src/test/groovy/io/opentelemetry/smoketest/DeclarativeConfigurationSmokeTest.groovy @@ -65,6 +65,9 @@ class DeclarativeConfigurationSmokeTest extends SmokeTest { then: "distro detector is added by customizer" hasResourceAttribute(traces, "telemetry.distro.name", "opentelemetry-javaagent") + then: "service detector is added by customizer" + findResourceAttribute(traces, "service.instance.id").findAny().isPresent() + cleanup: stopTarget()