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
This commit is contained in:
conghuhu 2023-11-25 01:53:00 -06:00 committed by GitHub
parent 4d5d9d8afc
commit e63d275eb6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 5 deletions

View File

@ -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>

View File

@ -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();
}

View File

@ -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>