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 <56248584+congh...@users.noreply.github.com>
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>

Reply via email to