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