Skip to content

Commit 6378b58

Browse files
committed
Set application name in Otel
1 parent 90f2182 commit 6378b58

File tree

3 files changed

+19
-11
lines changed

3 files changed

+19
-11
lines changed

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/BraveAutoConfiguration.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
import org.springframework.context.annotation.Bean;
4242
import org.springframework.context.annotation.Configuration;
4343
import org.springframework.core.env.Environment;
44-
import org.springframework.util.StringUtils;
4544

4645
/**
4746
* {@link EnableAutoConfiguration Auto-configuration} for Brave.
@@ -64,10 +63,9 @@ public class BraveAutoConfiguration {
6463
public Tracing braveTracing(Environment environment, List<SpanHandler> spanHandlers,
6564
List<TracingCustomizer> tracingCustomizers, CurrentTraceContext currentTraceContext,
6665
Factory propagationFactory, Sampler sampler) {
67-
String applicationName = environment.getProperty("spring.application.name");
66+
String applicationName = environment.getProperty("spring.application.name", DEFAULT_APPLICATION_NAME);
6867
Builder builder = Tracing.newBuilder().currentTraceContext(currentTraceContext)
69-
.propagationFactory(propagationFactory).sampler(sampler)
70-
.localServiceName(StringUtils.hasLength(applicationName) ? applicationName : DEFAULT_APPLICATION_NAME);
68+
.propagationFactory(propagationFactory).sampler(sampler).localServiceName(applicationName);
7169
for (SpanHandler spanHandler : spanHandlers) {
7270
builder.addSpanHandler(spanHandler);
7371
}

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/OpenTelemetryConfigurations.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,19 @@
2424
import io.micrometer.tracing.otel.bridge.OtelTracer;
2525
import io.micrometer.tracing.otel.bridge.OtelTracer.EventPublisher;
2626
import io.opentelemetry.api.OpenTelemetry;
27+
import io.opentelemetry.api.common.Attributes;
2728
import io.opentelemetry.api.trace.Tracer;
2829
import io.opentelemetry.context.propagation.ContextPropagators;
2930
import io.opentelemetry.context.propagation.TextMapPropagator;
3031
import io.opentelemetry.sdk.OpenTelemetrySdk;
32+
import io.opentelemetry.sdk.resources.Resource;
3133
import io.opentelemetry.sdk.trace.SdkTracerProvider;
3234
import io.opentelemetry.sdk.trace.SdkTracerProviderBuilder;
3335
import io.opentelemetry.sdk.trace.SpanProcessor;
3436
import io.opentelemetry.sdk.trace.export.BatchSpanProcessor;
3537
import io.opentelemetry.sdk.trace.export.SpanExporter;
3638
import io.opentelemetry.sdk.trace.samplers.Sampler;
39+
import io.opentelemetry.semconv.resource.attributes.ResourceAttributes;
3740

3841
import org.springframework.boot.SpringBootVersion;
3942
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
@@ -42,6 +45,7 @@
4245
import org.springframework.boot.context.properties.EnableConfigurationProperties;
4346
import org.springframework.context.annotation.Bean;
4447
import org.springframework.context.annotation.Configuration;
48+
import org.springframework.core.env.Environment;
4549

4650
/**
4751
* Configurations for Open Telemetry. Those are imported by
@@ -56,6 +60,12 @@ class OpenTelemetryConfigurations {
5660
@EnableConfigurationProperties(TracingProperties.class)
5761
static class SdkConfiguration {
5862

63+
/**
64+
* Default value for application name if {@code spring.application.name} is not
65+
* set.
66+
*/
67+
private static final String DEFAULT_APPLICATION_NAME = "application";
68+
5969
@Bean
6070
@ConditionalOnMissingBean
6171
OpenTelemetry openTelemetry(SdkTracerProvider sdkTracerProvider, ContextPropagators contextPropagators) {
@@ -65,8 +75,11 @@ OpenTelemetry openTelemetry(SdkTracerProvider sdkTracerProvider, ContextPropagat
6575

6676
@Bean
6777
@ConditionalOnMissingBean
68-
SdkTracerProvider otelSdkTracerProvider(List<SpanProcessor> spanProcessors, Sampler sampler) {
69-
SdkTracerProviderBuilder builder = SdkTracerProvider.builder().setSampler(sampler);
78+
SdkTracerProvider otelSdkTracerProvider(Environment environment, List<SpanProcessor> spanProcessors,
79+
Sampler sampler) {
80+
String applicationName = environment.getProperty("spring.application.name", DEFAULT_APPLICATION_NAME);
81+
SdkTracerProviderBuilder builder = SdkTracerProvider.builder().setSampler(sampler)
82+
.setResource(Resource.create(Attributes.of(ResourceAttributes.SERVICE_NAME, applicationName)));
7083
for (SpanProcessor spanProcessor : spanProcessors) {
7184
builder.addSpanProcessor(spanProcessor);
7285
}

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/wavefront/WavefrontTracingAutoConfiguration.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
import org.springframework.context.annotation.Bean;
4242
import org.springframework.context.annotation.Configuration;
4343
import org.springframework.core.env.Environment;
44-
import org.springframework.util.StringUtils;
4544

4645
/**
4746
* {@link EnableAutoConfiguration Auto-configuration} for Wavefront.
@@ -63,10 +62,8 @@ public class WavefrontTracingAutoConfiguration {
6362
@Bean
6463
@ConditionalOnMissingBean
6564
public ApplicationTags applicationTags(Environment environment, WavefrontProperties properties) {
66-
String applicationName = environment.getProperty("spring.application.name");
67-
return new ApplicationTags.Builder(
68-
StringUtils.hasLength(applicationName) ? applicationName : DEFAULT_APPLICATION_NAME,
69-
properties.getTracing().getServiceName()).build();
65+
String applicationName = environment.getProperty("spring.application.name", DEFAULT_APPLICATION_NAME);
66+
return new ApplicationTags.Builder(applicationName, properties.getTracing().getServiceName()).build();
7067
}
7168

7269
@Configuration(proxyBeanMethods = false)

0 commit comments

Comments
 (0)