文档
一个 项目

tracing

启用与 OpenTelemetry 跟踪功能的集成,使用 opentelemetry-go

启用后,它会传播现有的 trace 上下文或初始化一个新的上下文。

它使用 gRPC 作为导出器协议,并使用 W3C 的 tracecontextbaggage 作为传播器。

trace ID 和 span ID 会作为标准的 traceIDspanID 字段添加到 访问日志。另外,还提供 {http.vars.trace_id}{http.vars.span_id} 占位符;例如,你可以在 request_header 中使用它们将这些 ID 传递给你的应用。

语法

tracing {
	[span <span_name>]
}
  • <span_name> 是一个 span 名称。请参阅 span 的 命名指南

    在 span 名称中可以使用 占位符;请记住,跟踪会尽早发生,因此只能使用请求占位符,而不能使用响应占位符。

配置

环境变量

可以使用 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
	}
}