【发布时间】:2019-04-28 18:07:12
【问题描述】:
我正在尝试使用 128 位 Sleuth 生成的 TraceId 作为请求访问我的控制器的唯一标识符。我知道默认的 traceId 是 64,要更改它,我必须将以下内容添加到 application.properties:
spring.sleuth.trace-id128=true
这适用于我的本地,但是当我将它部署到 PCF 时,跟踪 ID 是 64 位。我创建了一个示例项目,它只有一个简单的控制器来演示这一点。
@RestController
public class Controller {
private Logger logger = LoggerFactory.getLogger(Controller.class);
@Autowired
private Tracer tracer;
@GetMapping("/")
public void test(){
logger.info("LOGGED +["+tracer.currentSpan().context().traceIdString()+"]");
}
}
在我的本地,它会打印:
com.example.demo.Controller: LOGGED + [5bfcb33c9d564481479f2c212ec08143]
在 PCF 中,它会打印:
om.example.demo.Controller : LOGGED + [97a1168857dc7088]
PCF 是否会覆盖此配置?
更新
在我的请求中包含“X-B3-TraceId”和“X-B3-SpanId”,traceId 现在是 128 位,但与请求标头中传递的字符串不同。
【问题讨论】:
标签: spring cloud-foundry spring-cloud-sleuth