mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-10 09:32:06 +00:00
50 lines
4.3 KiB
Markdown
50 lines
4.3 KiB
Markdown
|
---
|
|||
|
toc_priority: 62
|
|||
|
toc_title: Поддержка OpenTelemetry
|
|||
|
---
|
|||
|
|
|||
|
# [экспериментально] Поддержка OpenTelemetry
|
|||
|
|
|||
|
[OpenTelemetry](https://opentelemetry.io/) — это открытый стандарт для сбора трассировок и метрик из распределенного приложения. В ClickHouse есть поддержка `OpenTelemetry`.
|
|||
|
|
|||
|
!!! warning "Предупреждение"
|
|||
|
Этот стандарт экспериментальный и будет изменяться в будущих релизах.
|
|||
|
|
|||
|
## Обеспечение поддержки контекста трассировки в ClickHouse
|
|||
|
|
|||
|
ClickHouse принимает контекст трассировки HTTP заголовков, как описано в [рекомендации W3C](https://www.w3.org/TR/trace-context/). Также он принимает контекст трассировки через нативный протокол, который используется для связи между серверами 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`, [требуемая стандартом](https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/overview.md#span), хранится в системной таблице `system.opentelemetry_span_log`.
|
|||
|
|
|||
|
Таблица должна быть включена в конфигурации сервера, смотрите элемент `opentelemetry_span_log` в файле конфигурации `config.xml`. По умолчанию таблица уже включена.
|
|||
|
|
|||
|
В таблице имеются следующие столбцы:
|
|||
|
|
|||
|
- `trace_id`
|
|||
|
- `span_id`
|
|||
|
- `parent_span_id`
|
|||
|
- `operation_name`
|
|||
|
- `start_time`
|
|||
|
- `finish_time`
|
|||
|
- `finish_date`
|
|||
|
- `attribute.name`
|
|||
|
- `attribute.values`
|
|||
|
|
|||
|
Теги или атрибуты сохраняются в виде двух параллельных массивов, содержащих ключи и значения. Для работы с ними используйте `ARRAY JOIN`.
|
|||
|
|
|||
|
[Оригинальная статья](https://clickhouse.tech/docs/ru/operations/opentelemetry/) <!--hide-->
|