如何将 TraceId 写入 HTTP Response Header
默认情况下,TraceId 只会在保存在 HTTP Requst Header 中,如果需要在 HTTP Response Header 中设置 TraceId,可参考本文方法,编写扩展程序以增强 OpenTelemetry Java Agent 的功能。
Java
前提条件
- 使用 OpenTelemetry Java Agent。
- OpenTelemetry Java Agent 版本 >= 1.24.0。
编写 OpenTelemetry Java Agent 扩展
- 新建项目,pom.xml 中添加依赖。
请替换 <font style="color:rgb(24, 24, 24);">${OPENTELEMETRY_VERSION}</font>
,并确保与您使用的OpenTelemetry Java Agent版本一致。
- 新建 AgentHttpResponseCustomizer 类,实现 HttpServerResponseCustomizer 接口
- 将程序打包成 JAR 包,构建后存储在 target 目录下。
启动应用时加载 OpenTelemetry Java Agent 扩展
在原有 VM 参数上添加 -Dotel.javaagent.extensions 参数。
完整的启动命令示例: