tracing
啟用與 OpenTelemetry tracing 功能的整合,使用 opentelemetry-go
。
啟用後,它將傳播現有的追蹤上下文或初始化一個新的。
它使用 gRPC 作為匯出器協議,以及 W3C tracecontext 和 baggage 作為傳播器。
追蹤 ID 和 span ID 會以標準 traceID
和 spanID
欄位添加到 存取日誌 中。此外,{http.vars.trace_id}
和 {http.vars.span_id}
佔位符也可用;例如,您可以在 request_header
中使用它們,將 ID 傳遞給您的應用程式。
語法
tracing {
[span <span_name>]
}
-
<span_name> 是一個 span 名稱。請參閱 span 命名指南。
佔位符 可以用在 span 名稱中;請記住 tracing 盡可能早地發生,因此只能使用請求佔位符,而不能使用回應佔位符。
設定
環境變數
它可以使用 OpenTelemetry 環境變數規範 定義的環境變數進行配置。
關於匯出器設定的詳細資訊,請參閱 spec。
例如
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
}
}