文档
a 项目

tracing

启用与 OpenTelemetry 跟踪设施的集成,使用 opentelemetry-go

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

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

跟踪 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 环境变量规范 定义的环境变量进行配置。

有关导出器配置详细信息,请参阅 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
	}
}