отслеживание
Включает интеграцию с средствами отслеживания OpenTelemetry, используя opentelemetry-go .
При включении он будет распространять существующий контекст трассировки или инициализировать новый.
Он использует gRPC в качестве протокола экспортера и W3C tracecontext и baggage в качестве распространителей.
Идентификатор трассировки и идентификатор сегментов добавляются в журналы доступа в качестве стандартных traceID и spanID полей. Кроме того, доступны {http.vars.trace_id} и {http.vars.span_id} поля; например, вы можете использовать их в request_header, чтобы передать идентификаторы в ваше приложение.
Синтаксис
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
}
}
© 2015-2025 Matthew Holt and The Caddy Authors
Licensed under the Apache License 2.0.
Caddy is a registered trademark of Stack Holdings GmbH.
https://caddyserver.com/docs/caddyfile/directives/tracing