Co-authored-by: Anna <42538400+adevyatova@users.noreply.github.com>
4.3 KiB
toc_priority | toc_title |
---|---|
62 | Поддержка OpenTelemetry |
[экспериментально] Поддержка OpenTelemetry
ClickHouse поддерживает OpenTelemetry — открытый стандарт для сбора трассировок и метрик из распределенного приложения.
!!! warning "Предупреждение" Поддержка стандарта экспериментальная и будет со временем меняться.
Обеспечение поддержки контекста трассировки в ClickHouse
ClickHouse принимает контекст трассировки HTTP заголовков, как описано в рекомендации W3C. Также он принимает контекст трассировки через нативный протокол, который используется для связи между серверами ClickHouse или между клиентом и сервером. Для ручного тестирования заголовки контекста трассировки, соответствующие рекомендации контекста трассировки, могут быть переданы в clickhouse-client
через флаги: --opentelemetry-traceparent
и --opentelemetry-tracestate
.
Если входящий контекст трассировки не указан, ClickHouse может начать трассировку с вероятностью, задаваемой настройкой opentelemetry_start_trace_probability.
Распространение контекста трассировки
Контекст трассировки распространяется на нижестоящие сервисы в следующих случаях:
-
При использовании запросов к удаленным серверам ClickHouse, например при использовании движка таблиц Distributed.
-
При использовании табличной функции url. Информация контекста трассировки передается в HTTP заголовки.
Трассировка ClickHouse
ClickHouse создает trace spans для каждого запроса и некоторых этапов выполнения запроса, таких как планирование запросов или распределенные запросы.
Чтобы быть полезной, информация трассировки должна быть экспортирована в систему мониторинга, поддерживающую OpenTelemetry
, такую как Jaeger
или Prometheus
. ClickHouse не зависит от конкретной системы мониторинга, вместо этого предоставляя данные трассировки только через системную таблицу. Информация о диапазоне трассировки в OpenTelemetry
, требуемая стандартом, хранится в системной таблице system.opentelemetry_span_log.
Таблица должна быть включена в конфигурации сервера, смотрите элемент opentelemetry_span_log
в файле конфигурации config.xml
. По умолчанию таблица уже включена.
Теги или атрибуты сохраняются в виде двух параллельных массивов, содержащих ключи и значения. Для работы с ними используйте ARRAY JOIN.