This is an automated email from the ASF dual-hosted git repository.
congguoqinghuhu pushed a commit to branch 3.2
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.2 by this push:
new e63d275eb6 Bump io.micrometer:micrometer-tracing-bom from 1.1.6 to
1.2.0 (#13397)
e63d275eb6 is described below
commit e63d275eb61db8eaac00f7474e6e76e19ac805d0
Author: conghuhu <[email protected]>
AuthorDate: Sat Nov 25 01:53:00 2023 -0600
Bump io.micrometer:micrometer-tracing-bom from 1.1.6 to 1.2.0 (#13397)
chore: compatibility between two versions through the existence of classes
---
dubbo-dependencies-bom/pom.xml | 2 +-
.../otel/OpenTelemetryAutoConfiguration.java | 24 +++++++++++++++++++---
.../observability/pom.xml | 2 +-
3 files changed, 23 insertions(+), 5 deletions(-)
diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml
index f36b781520..0c5b2cc94d 100644
--- a/dubbo-dependencies-bom/pom.xml
+++ b/dubbo-dependencies-bom/pom.xml
@@ -134,7 +134,7 @@
<envoy_api_version>0.1.35</envoy_api_version>
<micrometer.version>1.12.0</micrometer.version>
- <micrometer-tracing.version>1.1.6</micrometer-tracing.version>
+ <micrometer-tracing.version>1.2.0</micrometer-tracing.version>
<t_digest.version>3.3</t_digest.version>
<prometheus_client.version>0.16.0</prometheus_client.version>
<reactive.version>1.0.4</reactive.version>
diff --git
a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/otel/OpenTelemetryAutoConfiguration.java
b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/otel/OpenTelemetryAutoConfiguration.java
index de77636e39..4eba4950dc 100644
---
a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/otel/OpenTelemetryAutoConfiguration.java
+++
b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/otel/OpenTelemetryAutoConfiguration.java
@@ -17,6 +17,7 @@
package org.apache.dubbo.spring.boot.observability.autoconfigure.otel;
import org.apache.dubbo.common.Version;
+import org.apache.dubbo.common.utils.ClassUtils;
import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.rpc.model.ModuleModel;
import org.apache.dubbo.spring.boot.autoconfigure.DubboConfigurationProperties;
@@ -28,6 +29,7 @@ import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
+import io.opentelemetry.api.common.AttributeKey;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
@@ -93,13 +95,29 @@ public class OpenTelemetryAutoConfiguration {
.getApplication()
.map(ApplicationConfig::getName)
.orElse(DEFAULT_APPLICATION_NAME);
+ // Due to https://github.com/micrometer-metrics/tracing/issues/343
+ String RESOURCE_ATTRIBUTES_CLASS_NAME =
"io.opentelemetry.semconv.ResourceAttributes";
+ boolean isLowVersion = !ClassUtils.isPresent(
+ RESOURCE_ATTRIBUTES_CLASS_NAME,
Thread.currentThread().getContextClassLoader());
+ AttributeKey<String> serviceNameAttributeKey =
AttributeKey.stringKey("service.name");
+ String SERVICE_NAME = "SERVICE_NAME";
+
+ if (isLowVersion) {
+ RESOURCE_ATTRIBUTES_CLASS_NAME =
"io.opentelemetry.semconv.resource.attributes.ResourceAttributes";
+ }
+ try {
+ serviceNameAttributeKey = (AttributeKey<String>)
ClassUtils.resolveClass(
+ RESOURCE_ATTRIBUTES_CLASS_NAME,
+ Thread.currentThread().getContextClassLoader())
+ .getDeclaredField(SERVICE_NAME)
+ .get(null);
+ } catch (Throwable ignored) {
+ }
io.opentelemetry.sdk.trace.SdkTracerProviderBuilder builder =
io.opentelemetry.sdk.trace.SdkTracerProvider.builder()
.setSampler(sampler)
.setResource(io.opentelemetry.sdk.resources.Resource.create(
- io.opentelemetry.api.common.Attributes.of(
-
io.opentelemetry.semconv.resource.attributes.ResourceAttributes.SERVICE_NAME,
- applicationName)));
+
io.opentelemetry.api.common.Attributes.of(serviceNameAttributeKey,
applicationName)));
spanProcessors.orderedStream().forEach(builder::addSpanProcessor);
return builder.build();
}
diff --git a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml
b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml
index be7d48a152..d37f4ca1f0 100644
--- a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml
+++ b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml
@@ -37,7 +37,7 @@
<properties>
<micrometer.version>1.12.0</micrometer.version>
- <micrometer-tracing.version>1.1.6</micrometer-tracing.version>
+ <micrometer-tracing.version>1.2.0</micrometer-tracing.version>
<opentelemetry.version>1.32.0</opentelemetry.version>
<zipkin-reporter.version>2.16.4</zipkin-reporter.version>
<prometheus-client.version>0.16.0</prometheus-client.version>