Skip to content

Commit 26f9f28

Browse files
committed
Bump io.micrometer:micrometer-tracing-bom from 1.1.6 to 1.2.0
chore: compatibility between two versions through the existence of classes
1 parent 883195a commit 26f9f28

3 files changed

Lines changed: 23 additions & 5 deletions

File tree

dubbo-dependencies-bom/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@
134134
<envoy_api_version>0.1.35</envoy_api_version>
135135
<micrometer.version>1.12.0</micrometer.version>
136136

137-
<micrometer-tracing.version>1.1.6</micrometer-tracing.version>
137+
<micrometer-tracing.version>1.2.0</micrometer-tracing.version>
138138
<t_digest.version>3.3</t_digest.version>
139139
<prometheus_client.version>0.16.0</prometheus_client.version>
140140
<reactive.version>1.0.4</reactive.version>

dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/otel/OpenTelemetryAutoConfiguration.java

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.apache.dubbo.spring.boot.observability.autoconfigure.otel;
1818

1919
import org.apache.dubbo.common.Version;
20+
import org.apache.dubbo.common.utils.ClassUtils;
2021
import org.apache.dubbo.config.ApplicationConfig;
2122
import org.apache.dubbo.rpc.model.ModuleModel;
2223
import org.apache.dubbo.spring.boot.autoconfigure.DubboConfigurationProperties;
@@ -28,6 +29,7 @@
2829
import java.util.List;
2930
import java.util.stream.Collectors;
3031

32+
import io.opentelemetry.api.common.AttributeKey;
3133
import org.springframework.beans.factory.ObjectProvider;
3234
import org.springframework.boot.autoconfigure.AutoConfiguration;
3335
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
@@ -93,13 +95,29 @@ io.opentelemetry.sdk.trace.SdkTracerProvider otelSdkTracerProvider(
9395
.getApplication()
9496
.map(ApplicationConfig::getName)
9597
.orElse(DEFAULT_APPLICATION_NAME);
98+
// Due to https://github.com/micrometer-metrics/tracing/issues/343
99+
String RESOURCE_ATTRIBUTES_CLASS_NAME = "io.opentelemetry.semconv.ResourceAttributes";
100+
boolean isLowVersion = !ClassUtils.isPresent(
101+
RESOURCE_ATTRIBUTES_CLASS_NAME, Thread.currentThread().getContextClassLoader());
102+
AttributeKey<String> attributeKey = null;
103+
String SERVICE_NAME = "SERVICE_NAME";
104+
105+
if (isLowVersion) {
106+
RESOURCE_ATTRIBUTES_CLASS_NAME = "io.opentelemetry.semconv.resource.attributes.ResourceAttributes";
107+
}
108+
try {
109+
attributeKey = (AttributeKey<String>) ClassUtils.resolveClass(
110+
RESOURCE_ATTRIBUTES_CLASS_NAME,
111+
Thread.currentThread().getContextClassLoader())
112+
.getDeclaredField(SERVICE_NAME)
113+
.get(null);
114+
} catch (Throwable ignored) {
115+
}
96116
io.opentelemetry.sdk.trace.SdkTracerProviderBuilder builder =
97117
io.opentelemetry.sdk.trace.SdkTracerProvider.builder()
98118
.setSampler(sampler)
99119
.setResource(io.opentelemetry.sdk.resources.Resource.create(
100-
io.opentelemetry.api.common.Attributes.of(
101-
io.opentelemetry.semconv.resource.attributes.ResourceAttributes.SERVICE_NAME,
102-
applicationName)));
120+
io.opentelemetry.api.common.Attributes.of(attributeKey, applicationName)));
103121
spanProcessors.orderedStream().forEach(builder::addSpanProcessor);
104122
return builder.build();
105123
}

dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737

3838
<properties>
3939
<micrometer.version>1.12.0</micrometer.version>
40-
<micrometer-tracing.version>1.1.6</micrometer-tracing.version>
40+
<micrometer-tracing.version>1.2.0</micrometer-tracing.version>
4141
<opentelemetry.version>1.32.0</opentelemetry.version>
4242
<zipkin-reporter.version>2.16.4</zipkin-reporter.version>
4343
<prometheus-client.version>0.16.0</prometheus-client.version>

0 commit comments

Comments
 (0)