Экспорт метрик сервера ClickHouse
Если вы используете ClickHouse Cloud, вы можете экспортировать метрики в Prometheus с помощью интеграции Prometheus.
<prometheus.handlers> можно использовать для создания более расширенных обработчиков на том же порту.
Этот раздел похож на <http_handlers>, но работает для протоколов prometheus:
Проверьте конечную точку:
HTTP API Prometheus и PromQL
TimeSeries. Один обработчик поддерживает удалённую запись, удалённое чтение, мгновенные запросы PromQL и запросы PromQL по диапазону.
Предварительные требования
allow_experimental_time_series_table для пользователя, создающего таблицу и работающего с ней:
TimeSeries:
allow_experimental_time_series_table в профиле пользователя API.
Настройка API Prometheus
<defaults/> сохраняет встроенные обработчики для таких конечных точек, как /ping, а также для SQL-запросов. Указанный выше префикс предоставляет доступ к этим конечным точкам через один обработчик:
В примере в обработчике не указаны
database и table. В каждом запросе необходимо передавать параметр запроса table. Также можно передать database, использовать полное имя таблицы, например prometheus.metrics, или не указывать базу данных, чтобы использовать default. Это позволяет одному обработчику обслуживать несколько таблиц TimeSeries.
Чтобы использовать одну фиксированную таблицу для всех запросов, настройте её в обработчике:
Приём метрик через удалённую запись
prometheus.metrics.
Чтобы объединять данные из множества одновременных запросов удалённой записи в меньшее число частей, включите асинхронные вставки, добавив настройку async_insert в URL (или включив её в профиле пользователя):
TimeSeries, независимо от настройки wait_for_async_insert: согласно протоколу удалённой записи подтверждённая запись считается надёжно сохранённой. Если сброс на диск завершается ошибкой, запрос возвращает ошибку, и Prometheus повторяет попытку.
Запрос с PromQL
promql и табличными функциями, см. в разделе Поддерживаемые возможности PromQL.
Grafana
/api/v1 в конце:
/api/v1/query или /api/v1/query_range к этому базовому URL, а также customQueryParameters к каждому запросу.
Реализованы только конечные точки запросов
/api/v1/query и /api/v1/query_range, а также конечные точки метаданных /api/v1/series, /api/v1/labels и /api/v1/metadata. Для /api/v1/series требуется как минимум один селектор серий match[]; она поддерживает необязательные параметры start, end и limit и возвращает объединение серий, соответствующих каждому селектору. /api/v1/labels принимает те же параметры, при этом match[] необязателен, и возвращает отсортированные имена меток соответствующих серий (или всех серий, если селекторы не указаны). Конечная точка значений меток (/api/v1/label/<name>/values), используемая источником данных Prometheus в Grafana для просмотра меток, переменных шаблона и автодополнения в конструкторе запросов, не реализована и возвращает ошибку. Вводите выражения PromQL в режиме кода, а не в конструкторе запросов.Точки входа SQL
promql, а также табличных функций prometheusQuery и prometheusQueryRange.
Выполните PromQL напрямую с помощью clickhouse-client:
Запрос метаданных метрик
/prometheus/api/v1/metadata возвращает метаданные метрик, хранящиеся в целевой таблице Metrics таблицы TimeSeries: тип, текст справки и единицу измерения каждого семейства метрик. Она поддерживает следующие параметры Prometheus в строке запроса URL:
Целевая таблица
Metrics по умолчанию — это ReplacingMergeTree, упорядоченная по имени семейства метрик: в ней сохраняется последняя записанная запись метаданных для каждого семейства метрик. Несколько записей для одного семейства возвращаются только до тех пор, пока они хранятся в целевой таблице: до слияния её частей или если таблица определена с движком, который их сохраняет.
Чтение метрик через удалённое чтение
/prometheus/api/v1/read.
Настройте сервер Prometheus для чтения из той же таблицы TimeSeries: