Opentelemetry将请求头添加到Span属性中

Springboot 使用 opentelemetry-javaagent.jar 提取检测数据到 Jaeger


如果想要提取请求头添加到 Span 中:

  • JVM参数 otel.instrumentation.http.capture-headers.server.request, 存在多个使用","隔开
  • 环境变量 OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_REQUEST, 存在多个使用","隔开
  • 使用 @WithSpan@SpanAttribute("parameter")

通过 otel.instrumentation.http.capture-headers.server.requestOTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_REQUEST 设置的请求头字段参数, 提取到 Span 时格式为 string[]

Jaeger-UI 的Tags 过滤目前仅支持精确字段, 因此 string[] 格式的属性无法参与过滤条件匹配, 建议使用 @WithSpan@SpanAttribute("parameter") 设置请求头到 Span


参考:


  
    io.opentelemetry.instrumentation
    opentelemetry-instrumentation-annotations
    1.20.2
  



public class MyClass {

    @WithSpan
    public void myMethod(@SpanAttribute("parameter1") String parameter1,
        @SpanAttribute("parameter2") long parameter2) {
        <...>
    }
}

请求调用链过程中执行了 `@WithSpan` 注解的方法, 会生成一个 `Span`, 
`@SpanAttribute` 则会把参数写入 `Span` 的Tags属性中。

你可能感兴趣的:(Opentelemetry将请求头添加到Span属性中)