Skip to content

Commit 1cd768e

Browse files
authored
spring boot starter: add service.version detection, improve service.name detection (#10457)
1 parent 9eb7312 commit 1cd768e

File tree

4 files changed

+20
-0
lines changed

4 files changed

+20
-0
lines changed

instrumentation/spring/spring-boot-autoconfigure/build.gradle.kts

+2
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ dependencies {
4646
compileOnly(project(":instrumentation-annotations"))
4747

4848
compileOnly(project(":instrumentation:resources:library"))
49+
compileOnly(project(":instrumentation:spring:spring-boot-resources:library"))
4950
annotationProcessor("com.google.auto.service:auto-service")
5051
compileOnly("com.google.auto.service:auto-service-annotations")
5152

@@ -60,6 +61,7 @@ dependencies {
6061
testImplementation("io.opentelemetry:opentelemetry-sdk")
6162
testImplementation("io.opentelemetry:opentelemetry-sdk-testing")
6263
testImplementation(project(":instrumentation:resources:library"))
64+
testImplementation(project(":instrumentation:spring:spring-boot-resources:library"))
6365
testImplementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
6466
testImplementation("io.opentelemetry:opentelemetry-extension-trace-propagators")
6567
testImplementation("io.opentelemetry.contrib:opentelemetry-aws-xray-propagator")

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/resources/OtelResourceAutoConfiguration.java

+14
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
import io.opentelemetry.instrumentation.resources.ProcessRuntimeResource;
1717
import io.opentelemetry.instrumentation.resources.ProcessRuntimeResourceProvider;
1818
import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration;
19+
import io.opentelemetry.instrumentation.spring.resources.SpringBootServiceNameDetector;
20+
import io.opentelemetry.instrumentation.spring.resources.SpringBootServiceVersionDetector;
1921
import io.opentelemetry.sdk.autoconfigure.internal.EnvironmentResourceProvider;
2022
import io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider;
2123
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
@@ -46,6 +48,18 @@ public ResourceProvider otelDistroVersionResourceProvider() {
4648
return new DistroVersionResourceProvider();
4749
}
4850

51+
@Bean
52+
@ConditionalOnClass(SpringBootServiceNameDetector.class)
53+
public ResourceProvider otelSpringBootServiceNameResourceProvider() {
54+
return new SpringBootServiceNameDetector();
55+
}
56+
57+
@Bean
58+
@ConditionalOnClass(SpringBootServiceVersionDetector.class)
59+
public ResourceProvider otelSpringBootServiceVersionResourceProvider() {
60+
return new SpringBootServiceVersionDetector();
61+
}
62+
4963
@Bean
5064
@ConditionalOnClass(OsResource.class)
5165
public ResourceProvider otelOsResourceProvider() {

instrumentation/spring/spring-boot-resources/library/src/main/java/io/opentelemetry/instrumentation/spring/resources/SpringBootServiceNameDetector.java

+3
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@
4545
* <li>Check for --spring.application.name program argument (not jvm arg) via ProcessHandle
4646
* <li>Check for --spring.application.name program argument via sun.java.command system property
4747
* </ul>
48+
*
49+
* <p>Note: should not be used inside a spring application, where the spring.application.name is
50+
* already available.
4851
*/
4952
@AutoService(ResourceProvider.class)
5053
public class SpringBootServiceNameDetector implements ConditionalResourceProvider {

instrumentation/spring/starters/spring-boot-starter/build.gradle.kts

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ dependencies {
1414
api(project(":instrumentation:spring:spring-boot-autoconfigure"))
1515
api(project(":instrumentation-annotations"))
1616
implementation(project(":instrumentation:resources:library"))
17+
implementation(project(":instrumentation:spring:spring-boot-resources:library"))
1718
api("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
1819
api("io.opentelemetry:opentelemetry-api")
1920
api("io.opentelemetry:opentelemetry-exporter-logging")

0 commit comments

Comments
 (0)