文档
一个 项目

tracing

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

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

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

跟踪 ID 和跨度 ID 作为标准 traceIDspanID 字段添加到访问日志中。此外,{http.vars.trace_id}{http.vars.span_id} 占位符可用;例如,您可以在 request_header 中使用它们将 ID 传递给您的应用程序。

语法

tracing {
	[span <span_name>]
}
  • <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
	}
}