tracing
启用与 OpenTelemetry 跟踪功能的集成,使用 opentelemetry-go 。
启用后,它会传播现有的 trace 上下文或初始化一个新的上下文。
它使用 gRPC 作为导出器协议,并使用 W3C 的 tracecontext 和 baggage 作为传播器。
trace ID 和 span ID 会作为标准的 traceID 和 spanID 字段添加到 访问日志。另外,还提供 {http.vars.trace_id} 和 {http.vars.span_id} 占位符;例如,你可以在 request_header 中使用它们将这些 ID 传递给你的应用。
语法
tracing {
[span <span_name>]
}
配置
环境变量
可以使用 OpenTelemetry 环境变量规范 定义的环境变量来配置。
有关导出器配置的详细信息,请参阅 规范。
例如:
export OTEL_EXPORTER_OTLP_HEADERS="myAuthHeader=myToken,anotherHeader=value"
export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://my-otlp-endpoint:55680
示例
下面是一个 Caddyfile 示例:
example.com {
handle /api* {
tracing {
span api
}
request_header X-Trace-Id {http.vars.trace_id}
reverse_proxy localhost:8081
}
handle {
tracing {
span app
}
reverse_proxy localhost:8080
}
}