4.3 KiB
slug | sidebar_position | sidebar_label |
---|---|---|
/ru/operations/opentelemetry | 62 | Поддержка OpenTelemetry |
[экспериментально] Поддержка OpenTelemetry
ClickHouse поддерживает OpenTelemetry — открытый стандарт для сбора трассировок и метрик из распределенного приложения.
:::danger "Предупреждение" Поддержка стандарта экспериментальная и будет со временем меняться.
Обеспечение поддержки контекста трассировки в ClickHouse
ClickHouse принимает контекстную информацию трассировки через HTTP заголовок tracecontext
, как описано в рекомендации W3C. Также он принимает контекстную информацию через нативный протокол, который используется для связи между серверами ClickHouse или между клиентом и сервером. Для ручного тестирования стандартный заголовок tracecontext
, содержащий контекст трассировки, может быть передан в 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.