Настройка источника данных 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 в виде строк
- Вы часто применяете функции для преобразования выбранных колонок
Колонки ALIAS, определенные таблицей
ClickHouse имеет встроенное псевдонимирование колонок и работает с Grafana "из коробки". Псевдонимные колонки могут быть определены непосредственно в таблице.
В приведенном выше примере мы создаем псевдоним с названием TimestampDate
, который преобразует временную метку в наносекундах в тип Date
.
Эти данные не хранятся на диске, как первая колонка, они вычисляются во время запроса.
Псевдонимы, определенные таблицей, не будут возвращены с SELECT *
, но это можно настроить в настройках сервера.
Для получения дополнительной информации читайте документацию по типу колонки ALIAS.
Таблицы псевдонимов колонок
По умолчанию Grafana будет предлагать колонки на основе ответа от DESC table
.
В некоторых случаях вы можете полностью переопределить колонки, которые видит Grafana.
Это помогает скрыть вашу схему в Grafana при выборе колонок, что может улучшить пользовательский опыт в зависимости от сложности вашей таблицы.
Преимущество этого подхода перед псевдонимами, определенными таблицей, заключается в том, что вы можете легко обновить их, не изменяя вашу таблицу. В некоторых схемах это может быть тысячи записей, что может загромождать определение базовой таблицы. Это также позволяет скрывать колонки, которые вы хотите, чтобы пользователь игнорировал.
Grafana требует, чтобы таблица псевдонимов имела следующую структуру колонок:
Вот как мы можем воспроизвести поведение колонки ALIAS
, используя таблицу псевдонимов:
Затем мы можем настроить эту таблицу для использования в Grafana. Обратите внимание, что имя может быть любым или даже определенным в отдельной базе данных:

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

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