Перейти к основному содержимому
Перейти к основному содержимому

Настройка источника данных ClickHouse в Grafana

ClickHouse Supported

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

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

Для быстрого обзора всех опций полный список параметров конфигурации можно найти здесь.

Общие настройки

Пример экрана конфигурации:

Пример конфигурации YAML для общих настроек:

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

Протокол HTTP

Больше настроек будет отображено, если вы выберете подключение через протокол HTTP.

HTTP Путь

Если ваш HTTP сервер открыт по другому URL пути, вы можете добавить его здесь.

Пользовательские HTTP Заголовки

Вы можете добавить пользовательские заголовки к запросам, отправляемым на ваш сервер.

Заголовки могут быть как обычными текстовыми, так и защищенными. Все ключи заголовков хранятся в обычном текстовом формате, в то время как защищенные значения заголовков сохраняются в защищенной конфигурации (аналогично полю password).

Защищенные значения по HTTP

Хотя защищенные значения заголовков хранятся безопасно в конфигурации, значение все равно будет отправлено по 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.