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

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

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

Пример YAML:
OpenTelemetry
OpenTelemetry (OTel) глубоко интегрирован в плагин. Данные OpenTelemetry могут экспортироваться в ClickHouse с помощью нашего exporter plugin. Для наилучшего результата рекомендуется настроить OTel как для логов, так и для трейсов.
Также необходимо настроить эти значения по умолчанию для включения data links — функции, которая обеспечивает мощные сценарии обсервабилити.
Логи
Чтобы ускорить сборку запросов для логов, можно задать базу данных/таблицу по умолчанию, а также столбцы для запроса логов. Это предварительно заполнит конструктор запросов исполняемым запросом к логам, что ускорит работу на странице Explore для обсервабилити.
Если вы используете OpenTelemetry, включите переключатель «Use OTel» и установите default log table в otel_logs.
Это автоматически переопределит столбцы по умолчанию для использования выбранной версии схемы OTel.
Хотя OpenTelemetry не является обязательным для логов, использование единого набора данных для логов и трейсов помогает сделать процесс обсервабилити более плавным благодаря data linking.
Пример экрана конфигурации логов:

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

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

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

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