Closed lrwh closed 6 months ago
测试源码引用gitee上一个demo : https://gitee.com/tianxingfy/spring-cloud-gateway-demo
将 gateway-test-demo
gateway-test-demo2
tx-gateway
三个服务编译mvn package
运行:
# 启动 demo01
java -javaagent:/home/songlq/ddtrace/dd-java.jar -Ddd.service=demo01 -jar target/demo-0.0.1-SNAPSHOT.jar
# 启动demo02
java -javaagent:/home/songlq/ddtrace/dd-java.jar -Ddd.service=demo01 -jar target/demo2-0.0.1-SNAPSHOT.jar
# 启动 gateway
java -javaagent:/home/songlq/ddtrace/dd-java.jar -Ddd.service=gateway -jar target/tx-gateway-0.0.1-SNAPSHOT.jar
发送curl 请求:
# curl
curl -H "x-datadog-trace-id: 4641233628968455336" -H "x-datadog-parent: 6053029447799132885" http://localhost:8080/api/business/health
我测试是ok的。 使用的ddtrace是最新版本。
感谢回复,不过其实我想知道,能不能相同的版本复现问题。从而确定是否这个版本的ddtrace毕现,而只需要升级ddtrace就可以解决了
我方才 v1.8.5-guance 测了下,也是可以透传过去的
curl -H "x-datadog-trace-id: 4641233628968455361" -H "x-datadog-paren7: 6053094479913286" http://localhost:8080/api/business/health
在demo1中 打印headers:
@RequestMapping("/health")
public String health(@RequestHeader Map<String, String> headers) {
System.out.println("health check");
headers.forEach((key,val) -> {System.out.println("key="+key+"val="+val);});
return "business 1";
}
结果:
key=user-agentval=curl/7.64.0
key=acceptval=*/*
key=x-datadog-paren7val=6053094479913286
key=forwardedval=proto=http;host="localhost:8080";for="0:0:0:0:0:0:0:1%0:39856"
key=x-forwarded-forval=0:0:0:0:0:0:0:1%0
key=x-forwarded-protoval=http
key=x-forwarded-prefixval=/api
key=x-forwarded-portval=8080
key=x-forwarded-hostval=localhost:8080
key=hostval=localhost:6002
key=content-lengthval=0
key=x-datadog-trace-idval=4641233628968455361
key=x-datadog-parent-idval=7279483465240776710
key=x-datadog-sampling-priorityval=1
health check
4641233628968455361 这个链路id从gateway传递到demo01中了
@songlonqi-java 你测试的版本与 @rhinuxx 使用版本不一致,建议使用一样的版本进行测试,目前查看 demo 的版本信息如下:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
gateway 2.0 和 3.0 架构上有很大的变化,建议重新测试
我JDK是17 升级到spring-boot 3.0 , 测试依旧是没有问题的。从gateway到后端服务,链路是串联的
应该是客户代码逻辑上有些问题,先close,后续如果有需要再开启
经验证,是客户使用上存在问题。
问题
在请求头设置一个x-datadog-trace-id,经过网关层服务到下游服务,在下游服务入口处打印出的日志请求头x-datadog-trace-id值变化了。但是如果不加ddtrace的agent则是正常的。
其中 ddtrace 版本 为
v1.8.5-guance
java 版本
java环境:version 11.0.10
架构信息
期望
期望能够串联链路