From 02e852f2e960c1d4eb132a9217b800cbd4f91272 Mon Sep 17 00:00:00 2001 From: shedfreewu Date: Mon, 7 Jul 2025 22:15:51 +0800 Subject: [PATCH] fix npe in trace plugin --- .../trace/attribute/PolarisSpanAttributesProvider.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-trace-plugin/src/main/java/com/tencent/cloud/plugin/trace/attribute/PolarisSpanAttributesProvider.java b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-trace-plugin/src/main/java/com/tencent/cloud/plugin/trace/attribute/PolarisSpanAttributesProvider.java index 2ef6bbf75..898bfc02e 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-trace-plugin/src/main/java/com/tencent/cloud/plugin/trace/attribute/PolarisSpanAttributesProvider.java +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-trace-plugin/src/main/java/com/tencent/cloud/plugin/trace/attribute/PolarisSpanAttributesProvider.java @@ -23,6 +23,7 @@ import java.util.Map; import com.tencent.cloud.common.metadata.MetadataContext; import com.tencent.cloud.common.metadata.MetadataContextHolder; import com.tencent.cloud.rpc.enhancement.plugin.EnhancedPluginContext; +import com.tencent.cloud.rpc.enhancement.plugin.EnhancedRequestContext; import com.tencent.polaris.api.utils.CollectionUtils; import com.tencent.polaris.api.utils.StringUtils; import com.tencent.polaris.metadata.core.MessageMetadataContainer; @@ -84,7 +85,9 @@ public class PolarisSpanAttributesProvider implements SpanAttributesProvider { } attributes.put("http.port", CalleeMetadataContainerGroup.getStaticApplicationMetadataContainer() .getRawMetadataStringValue(MetadataConstants.LOCAL_PORT)); - attributes.put("net.peer.service", context.getTargetServiceInstance().getServiceId()); + EnhancedRequestContext request = context.getRequest(); + String service = request.getServiceUrl() != null ? request.getServiceUrl().getHost() : request.getUrl().getHost(); + attributes.put("net.peer.service", service); String serviceLane = metadataContext.getMetadataContainer(MetadataType.MESSAGE, false) .getRawMetadataMapValue(MessageMetadataContainer.LABEL_MAP_KEY_HEADER, TRAFFIC_STAIN_LABEL);