InfluxDB и Grafana — два мощных инструмента с открытым исходным кодом, широко используемые в области хранения и визуализации данных временных рядов. InfluxDB служит высокопроизводительной базой данных временных рядов, а Grafana предоставляет гибкую и интуитивно понятную платформу для создания визуально привлекательных информационных панелей. В этой статье мы рассмотрим различные методы использования InfluxQL, языка запросов для InfluxDB, в Grafana. Мы также предоставим примеры кода для иллюстрации каждого метода.
Метод 1: использование редактора InfluxQL в Grafana
Grafana предлагает интегрированный редактор InfluxQL, позволяющий писать и выполнять запросы непосредственно в интерфейсе Grafana. Чтобы использовать этот метод, выполните следующие действия:
- Запустите Grafana и перейдите на панель управления, куда вы хотите добавить панель.
- Нажмите «Добавить панель» и выберите тип визуализации.
- В конфигурации панели прокрутите вниз до раздела «Запрос» и выберите «InfluxQL» в качестве языка запроса.
- Введите запрос InfluxQL в редакторе.
- Нажмите «Применить» или «Выполнить запрос», чтобы выполнить запрос и просмотреть результаты.
Пример:
Предположим, вы хотите получить среднюю температуру, зафиксированную в результате измерения под названием «температура» за последние 24 часа. Соответствующий запрос InfluxQL будет:
SELECT MEAN("value") FROM "temperature" WHERE time > now() - 24h
Метод 2: использование шаблонных переменных InfluxQL
Grafana позволяет вам определять переменные шаблона, которые можно использовать в запросах InfluxQL. Эти переменные обеспечивают динамическую фильтрацию и позволяют использовать больше интерактивных панелей мониторинга. Чтобы использовать этот метод, выполните следующие действия:
- Создайте новую панель мониторинга или отредактируйте существующую в Grafana.
- Нажмите на значок настроек в правом верхнем углу и выберите «Переменные».
- Определите новую переменную, указав имя, запрос и источник данных (InfluxDB).
- Используйте определенную переменную в своих запросах InfluxQL, заключив ее в фигурные скобки
{}.
Пример:
Предположим, у вас есть переменная шаблона с именем $sensor, которая представляет различные датчики температуры. Вы можете использовать эту переменную в запросе InfluxQL для фильтрации данных на основе выбранного датчика:
SELECT "value" FROM "temperature" WHERE "sensor" = '$sensor'
Метод 3: использование аннотаций с запросами InfluxQL
Grafana позволяет создавать аннотации, которые представляют собой события или маркеры, наложенные на график, используя данные из запроса InfluxDB. Чтобы использовать этот метод, выполните следующие действия:
- Откройте панель управления, куда вы хотите добавить аннотации.
- Нажмите на значок настроек и выберите «Аннотации».
- Выберите InfluxDB в качестве источника данных и настройте параметры запроса.
- Напишите запрос InfluxQL, который извлекает данные для аннотаций.
- Выберите параметры визуализации и форматирования аннотаций.
Пример:
Предположим, вы хотите создать аннотации для определенных значений температуры, превышающих пороговое значение. Следующий запрос InfluxQL извлекает временные метки и значения, превышающие 30 градусов Цельсия:
SELECT time, "value" FROM "temperature" WHERE "value" > 30
В этой статье мы рассмотрели различные методы использования InfluxQL в Grafana. Мы рассмотрели использование редактора InfluxQL, использование шаблонных переменных и создание аннотаций с помощью запросов InfluxQL. Используя возможности InfluxDB и Grafana вместе, вы можете эффективно хранить и визуализировать данные временных рядов, обеспечивая эффективный мониторинг и анализ.