diff --git a/custom/src/main/java/com/splunk/opentelemetry/servicename/ServiceNameChecker.java b/custom/src/main/java/com/splunk/opentelemetry/servicename/ServiceNameChecker.java index 75f5d713c..ce5b914be 100644 --- a/custom/src/main/java/com/splunk/opentelemetry/servicename/ServiceNameChecker.java +++ b/custom/src/main/java/com/splunk/opentelemetry/servicename/ServiceNameChecker.java @@ -20,6 +20,8 @@ import static io.opentelemetry.sdk.autoconfigure.AutoConfigureUtil.getResource; import com.google.auto.service.AutoService; +import io.opentelemetry.api.incubator.config.ConfigProvider; +import io.opentelemetry.api.incubator.config.GlobalConfigProvider; import io.opentelemetry.javaagent.tooling.BeforeAgentListener; import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; @@ -50,10 +52,16 @@ public void beforeAgent(AutoConfiguredOpenTelemetrySdk autoConfiguredOpenTelemet ConfigProperties config = getConfig(autoConfiguredOpenTelemetrySdk); Resource resource = getResource(autoConfiguredOpenTelemetrySdk); if (serviceNameNotConfigured(config, resource)) { - logWarn.accept( - "The service.name resource attribute is not set. Your service is unnamed and will be difficult to identify.\n" - + " Set your service name using the OTEL_SERVICE_NAME or OTEL_RESOURCE_ATTRIBUTES environment variable.\n" - + " E.g. `OTEL_SERVICE_NAME=\"\"`"); + if (isDeclarativeConfigInUse()) { + logWarn.accept( + "The service.name resource attribute is not set. Your service is unnamed and will be difficult to identify.\n" + + " Set your service name in '.resource.attributes' node, or specify appropriate resource detector in the configuration YAML file."); + } else { + logWarn.accept( + "The service.name resource attribute is not set. Your service is unnamed and will be difficult to identify.\n" + + " Set your service name using the OTEL_SERVICE_NAME or OTEL_RESOURCE_ATTRIBUTES environment variable.\n" + + " E.g. `OTEL_SERVICE_NAME=\"\"`"); + } } } @@ -70,4 +78,8 @@ static boolean serviceNameNotConfigured(ConfigProperties config, Resource resour && !resourceAttributes.containsKey(ServiceAttributes.SERVICE_NAME.getKey()) && "unknown_service:java".equals(resource.getAttribute(ServiceAttributes.SERVICE_NAME)); } + + private static boolean isDeclarativeConfigInUse() { + return !GlobalConfigProvider.get().equals(ConfigProvider.noop()); + } }