Skip to content

Commit a5d4476

Browse files
committed
fix:fix RestTemplate trace attribute loss bug.
1 parent 55dc9ba commit a5d4476

File tree

5 files changed

+28
-7
lines changed

5 files changed

+28
-7
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,4 @@
1515
- fix:fix PolarisContextProperties instantiated twice causing NPE.
1616
- fix:fix ipv6 instance not found bug.
1717
- fix:fix tsf lossless not working bug.
18+
- fix:fix RestTemplate trace attribute loss bug.

spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/reporter/CircuitBreakerPlugin.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ public void run(EnhancedPluginContext context) throws Throwable {
7070
EnhancedRequestContext request = context.getRequest();
7171
EnhancedResponseContext response = context.getResponse();
7272

73-
String host = request.getServiceUrl() != null ? request.getServiceUrl().getHost() : request.getUrl().getHost();
74-
String path = request.getServiceUrl() != null ? request.getServiceUrl().getPath() : request.getUrl().getPath();
73+
String host = request.getHost();
74+
String path = request.getPath();
7575
String governanceNamespace = StringUtils.isNotEmpty(request.getGovernanceNamespace()) ? request.getGovernanceNamespace() : MetadataContext.LOCAL_NAMESPACE;
7676

7777
String httpMethod = request.getHttpMethod().name();

spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-trace-plugin/src/main/java/com/tencent/cloud/plugin/trace/attribute/PolarisSpanAttributesProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public Map<String, String> getClientBaggageAttributes(EnhancedPluginContext cont
8484
}
8585
attributes.put("http.port", CalleeMetadataContainerGroup.getStaticApplicationMetadataContainer()
8686
.getRawMetadataStringValue(MetadataConstants.LOCAL_PORT));
87-
attributes.put("net.peer.service", context.getTargetServiceInstance().getServiceId());
87+
attributes.put("net.peer.service", context.getRequest().getHost());
8888

8989
String serviceLane = metadataContext.getMetadataContainer(MetadataType.MESSAGE, false)
9090
.getRawMetadataMapValue(MessageMetadataContainer.LABEL_MAP_KEY_HEADER, TRAFFIC_STAIN_LABEL);

spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-trace-plugin/src/main/java/com/tencent/cloud/plugin/trace/attribute/tsf/TsfSpanAttributesProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ public class TsfSpanAttributesProvider implements SpanAttributesProvider {
3333
@Override
3434
public Map<String, String> getClientBaggageAttributes(EnhancedPluginContext context) {
3535
Map<String, String> attributes = new HashMap<>();
36-
if (null != context.getRequest().getUrl()) {
37-
attributes.put("remoteInterface", context.getRequest().getUrl().getPath());
36+
if (context.getRequest() != null && StringUtils.isNotBlank(context.getRequest().getPath())) {
37+
attributes.put("remoteInterface", context.getRequest().getPath());
3838
}
3939
ServiceInstance targetServiceInstance = context.getTargetServiceInstance();
4040
if (null != targetServiceInstance && CollectionUtils.isNotEmpty(targetServiceInstance.getMetadata())) {

spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/EnhancedRequestContext.java

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ public class EnhancedRequestContext {
3939

4040
private String governanceNamespace;
4141

42+
public static EnhancedContextRequestBuilder builder() {
43+
return new EnhancedContextRequestBuilder();
44+
}
45+
4246
public HttpMethod getHttpMethod() {
4347
return httpMethod;
4448
}
@@ -79,8 +83,24 @@ public void setGovernanceNamespace(String governanceNamespace) {
7983
this.governanceNamespace = governanceNamespace;
8084
}
8185

82-
public static EnhancedContextRequestBuilder builder() {
83-
return new EnhancedContextRequestBuilder();
86+
public String getHost() {
87+
if (serviceUrl != null) {
88+
return serviceUrl.getHost();
89+
}
90+
if (url != null) {
91+
return url.getHost();
92+
}
93+
return null;
94+
}
95+
96+
public String getPath() {
97+
if (serviceUrl != null) {
98+
return serviceUrl.getPath();
99+
}
100+
if (url != null) {
101+
return url.getPath();
102+
}
103+
return null;
84104
}
85105

86106
@Override

0 commit comments

Comments
 (0)