spring boot starter: add service.version detection, improve service.name detection (#10457)
This commit is contained in:
parent
9eb73127ca
commit
1cd768e294
|
@ -46,6 +46,7 @@ dependencies {
|
|||
compileOnly(project(":instrumentation-annotations"))
|
||||
|
||||
compileOnly(project(":instrumentation:resources:library"))
|
||||
compileOnly(project(":instrumentation:spring:spring-boot-resources:library"))
|
||||
annotationProcessor("com.google.auto.service:auto-service")
|
||||
compileOnly("com.google.auto.service:auto-service-annotations")
|
||||
|
||||
|
@ -60,6 +61,7 @@ dependencies {
|
|||
testImplementation("io.opentelemetry:opentelemetry-sdk")
|
||||
testImplementation("io.opentelemetry:opentelemetry-sdk-testing")
|
||||
testImplementation(project(":instrumentation:resources:library"))
|
||||
testImplementation(project(":instrumentation:spring:spring-boot-resources:library"))
|
||||
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
|
||||
testImplementation("io.opentelemetry:opentelemetry-extension-trace-propagators")
|
||||
testImplementation("io.opentelemetry.contrib:opentelemetry-aws-xray-propagator")
|
||||
|
|
|
@ -16,6 +16,8 @@ import io.opentelemetry.instrumentation.resources.ProcessResourceProvider;
|
|||
import io.opentelemetry.instrumentation.resources.ProcessRuntimeResource;
|
||||
import io.opentelemetry.instrumentation.resources.ProcessRuntimeResourceProvider;
|
||||
import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration;
|
||||
import io.opentelemetry.instrumentation.spring.resources.SpringBootServiceNameDetector;
|
||||
import io.opentelemetry.instrumentation.spring.resources.SpringBootServiceVersionDetector;
|
||||
import io.opentelemetry.sdk.autoconfigure.internal.EnvironmentResourceProvider;
|
||||
import io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
||||
|
@ -46,6 +48,18 @@ public class OtelResourceAutoConfiguration {
|
|||
return new DistroVersionResourceProvider();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnClass(SpringBootServiceNameDetector.class)
|
||||
public ResourceProvider otelSpringBootServiceNameResourceProvider() {
|
||||
return new SpringBootServiceNameDetector();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnClass(SpringBootServiceVersionDetector.class)
|
||||
public ResourceProvider otelSpringBootServiceVersionResourceProvider() {
|
||||
return new SpringBootServiceVersionDetector();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnClass(OsResource.class)
|
||||
public ResourceProvider otelOsResourceProvider() {
|
||||
|
|
|
@ -45,6 +45,9 @@ import org.snakeyaml.engine.v2.api.LoadSettings;
|
|||
* <li>Check for --spring.application.name program argument (not jvm arg) via ProcessHandle
|
||||
* <li>Check for --spring.application.name program argument via sun.java.command system property
|
||||
* </ul>
|
||||
*
|
||||
* <p>Note: should not be used inside a spring application, where the spring.application.name is
|
||||
* already available.
|
||||
*/
|
||||
@AutoService(ResourceProvider.class)
|
||||
public class SpringBootServiceNameDetector implements ConditionalResourceProvider {
|
||||
|
|
|
@ -14,6 +14,7 @@ dependencies {
|
|||
api(project(":instrumentation:spring:spring-boot-autoconfigure"))
|
||||
api(project(":instrumentation-annotations"))
|
||||
implementation(project(":instrumentation:resources:library"))
|
||||
implementation(project(":instrumentation:spring:spring-boot-resources:library"))
|
||||
api("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
|
||||
api("io.opentelemetry:opentelemetry-api")
|
||||
api("io.opentelemetry:opentelemetry-exporter-logging")
|
||||
|
|
Loading…
Reference in New Issue