Настройка источника данных ClickHouse в Grafana
Самый простой способ изменить конфигурацию — это использовать интерфейс Grafana на странице конфигурации плагина, но источники данных также могут быть предоставлены с помощью YAML файла.
На этой странице представлен обзор доступных опций для настройки в плагине ClickHouse, а также фрагменты конфигурации для тех, кто предоставляет источник данных с помощью YAML.
Для быстрого обзора всех опций полный список параметров конфигурации можно найти здесь.
Общие настройки
Пример экрана конфигурации:

Пример конфигурации YAML для общих настроек:
Обратите внимание, что свойство version
добавляется, когда конфигурация сохраняется из интерфейса. Это показывает версию плагина, с которой была сохранена конфигурация.
HTTP Протокол
Больше настроек будет показано, если вы выберете подключение через HTTP протокол.

HTTP Путь
Если ваш HTTP сервер доступен по другому URL пути, вы можете добавить его здесь.
Пользовательские HTTP Заголовки
Вы можете добавить пользовательские заголовки к запросам, отправляемым на ваш сервер.
Заголовки могут быть как простым текстом, так и защищенными.
Все ключи заголовков хранятся в виде простого текста, в то время как защищенные значения заголовков сохраняются в безопасной конфигурации (по аналогии с полем password
).
Хотя защищенные значения заголовков хранятся безопасно в конфигурации, значение все равно будет отправлено по HTTP, если безопасное соединение отключено.
Пример YAML для простых/защищенных заголовков:
Дополнительные настройки
Эти дополнительные настройки являются необязательными.

Пример YAML:
OpenTelemetry
OpenTelemetry (OTel) глубоко интегрирован в плагин. Данные OpenTelemetry могут быть экспортированы в ClickHouse с помощью нашего экспортера. Для лучшего использования рекомендуется настроить OTel как для логов, так и для трассировок.
Также необходимо настроить эти параметры по умолчанию для включения ссылок данных, функции, которая позволяет использовать мощные рабочие процессы наблюдаемости.
Логи
Чтобы ускорить создание запросов для логов, вы можете установить базу данных/таблицу по умолчанию, а также столбцы для запроса логов. Это предварительно загрузит конструктор запросов с выполнимым запросом логов, что ускоряет просмотр на странице исследования для наблюдаемости.
Если вы используете OpenTelemetry, вы должны включить переключатель "Использовать OTel" и установить таблицу логов по умолчанию на otel_logs
.
Это автоматически переопределит столбцы по умолчанию, чтобы использовать выбранную версию схемы OTel.
Хотя OpenTelemetry не требуется для логов, использование единого набора данных по логам/трассировкам помогает обеспечить более плавный рабочий процесс наблюдаемости с ссылками данных.
Пример экрана конфигурации логов:

Пример конфигурации логов YAML:
Трассировки
Чтобы ускорить создание запросов для трассировок, вы можете установить базу данных/таблицу по умолчанию, а также столбцы для запроса трассировок. Это предварительно загрузит конструктор запросов с выполнимым запросом поиска трассировок, что ускоряет просмотр на странице исследования для наблюдаемости.
Если вы используете OpenTelemetry, вы должны включить переключатель "Использовать OTel" и установить таблицу трассировок по умолчанию на otel_traces
.
Это автоматически переопределит столбцы по умолчанию, чтобы использовать выбранную версию схемы OTel.
Хотя OpenTelemetry не требуется, эта функция работает лучше всего, когда используется его схема для трассировок.
Пример экрана конфигурации трассировок:

Пример конфигурации трассировок YAML:
Псевдонимы столбцов
Псевдонимы столбцов — это удобный способ запрашивать ваши данные под разными именами и типами. С помощью псевдонимов вы можете взять вложенную схему и упростить ее, чтобы ее можно было легко выбирать в Grafana.
Псевдонимы могут быть актуальны для вас, если:
- Вы знаете свою схему и большинство ее вложенных свойств/типов
- Вы храните свои данные в типах Map
- Вы храните JSON в виде строк
- Вы часто применяете функции для преобразования выбранных вами столбцов
ПСЕВДОНИМЫ ОПРЕДЕЛЕННЫЕ В ТАБЛИЦЕ
ClickHouse имеет встроенные псевдонимы столбцов и работает с Grafana из коробки. Псевдонимы столбцов могут быть определены непосредственно в таблице.
В приведенном выше примере мы создаем псевдоним под названием TimestampDate
, который преобразует временную метку в наносекундах в тип Date
.
Эти данные не хранятся на диске, как первый столбец, они вычисляются во время выполнения запроса.
Псевдонимы, определенные в таблице, не будут возвращены с помощью SELECT *
, но это можно настроить в настройках сервера.
Для получения дополнительной информации ознакомьтесь с документацией по типу столбца ALIAS.
Таблицы псевдонимов столбцов
По умолчанию Grafana будет предоставлять предложения по столбцам на основе ответа от DESC table
.
В некоторых случаях вы можете захотеть полностью переопределить столбцы, которые видит Grafana.
Это помогает скрыть вашу схему в Grafana при выборе столбцов, что может улучшить пользовательский опыт в зависимости от сложности вашей таблицы.
Преимущество этого подхода перед псевдонимами, определенными в таблице, заключается в том, что вы можете легко обновлять их, не внося изменения в свою таблицу. В некоторых схемах это может быть тысяча записей, что может загромождать определение базовой таблицы. Это также позволяет скрывать столбцы, которые вы хотите, чтобы пользователь игнорировал.
Grafana требует, чтобы таблица псевдонимов имела следующую структуру столбцов:
Вот как мы могли бы воспроизвести поведение столбца ALIAS
, используя таблицу псевдонимов:
Мы можем затем настроить эту таблицу для использования в Grafana. Обратите внимание, что имя может быть любым или даже определено в отдельной базе данных:

Теперь Grafana будет видеть результаты таблицы псевдонимов вместо результатов от DESC example_table
:

Оба типа псевдонимов могут быть использованы для выполнения сложных преобразований типов или извлечения полей JSON.
Все опции YAML
Это все параметры конфигурации YAML, предоставляемые плагином. Некоторые поля имеют примерные значения, в то время как другие просто показывают тип поля.
Смотрите документацию Grafana для получения дополнительной информации о предоставлении источников данных с помощью YAML.