Последнее обновление: августа 4, 2026

Аннотации InfluxDB

Аннотации накладывают данные о событиях на графики дашборда, помогая сопоставлять события с метриками. Вы можете использовать InfluxDB в качестве источника данных для аннотаций, чтобы отображать на визуализациях такие события, как развёртывания, оповещения и другие значимые события.

Общую информацию об аннотациях см. в разделе Аннотирование визуализаций.

Прежде чем начать

Перед созданием аннотаций InfluxDB убедитесь, что у вас есть:

  • Источник данных InfluxDB, настроенный в Grafana
  • Данные в InfluxDB, содержащие информацию о событиях с полями отметок времени
  • Доступ на чтение к базе данных или бакету InfluxDB, содержащему ваши события

Создание запроса аннотации

Чтобы добавить аннотацию InfluxDB на дашборд:

  1. Перейдите к дашборду, который хотите изменить, и нажмите Edit.
  2. Нажмите значок Add new element (синий плюс).
  3. Нажмите Annotation query.
  4. Введите имя запроса аннотации.
  5. Если вы не хотите использовать запрос аннотации сразу, снимите флажок Enabled.
  6. Выберите цвет маркеров событий аннотации.
  7. Выберите вариант в раскрывающемся списке Show annotation controls in, чтобы определить, где на дашборде отображаются элементы управления аннотацией.
  8. Выберите вариант в раскрывающемся списке Show in, чтобы определить, на каких панелях отображается аннотация.
  9. Нажмите Open query editor, чтобы открыть диалоговое окно Annotation Query.
  10. Выберите ваш источник данных InfluxDB в раскрывающемся списке Data source.
  11. Настройте запрос аннотации и сопоставления полей.
  12. (Необязательно) Нажмите Test annotation query, чтобы убедиться, что запрос работает правильно.
  13. Нажмите Close, когда закончите настройку запроса.
  14. Нажмите Save.
  15. (Необязательно) Введите описание внесённых изменений.
  16. Нажмите Save.
  17. Нажмите Exit edit.

Аннотации InfluxQL

Для источников данных, настроенных на InfluxQL, напишите запрос InfluxQL в поле InfluxQL Query. Ваш запрос должен содержать WHERE $timeFilter, чтобы ограничить результаты диапазоном времени дашборда.

Сопоставления полей

Сопоставления полей указывают Grafana, какие столбцы InfluxDB содержат данные аннотации. Если запрос возвращает только один столбец, заполнять поля сопоставления не нужно.

Поле Описание
Text Столбец, содержащий описание аннотации, которое отображается при наведении курсора на аннотацию.
Tags Столбец, содержащий теги аннотации. Значение может быть строкой, разделённой запятыми. Теги помогают классифицировать аннотации и фильтровать их.
TimeEnd Столбец, содержащий время окончания для аннотаций-диапазонов. Аннотации-диапазоны отображаются на графике как затенённая область вместо одной вертикальной линии.

Пример запроса аннотации InfluxQL

Следующий запрос извлекает события развёртывания и отображает их как аннотации:

SQL
SELECT title, description
FROM events
WHERE $timeFilter
ORDER BY time ASC

Пример аннотации-диапазона

Чтобы отображать события с длительностью как затенённые области:

SQL
SELECT description, tags, end_time
FROM maintenance_windows
WHERE $timeFilter
ORDER BY time ASC

Настройте сопоставления полей следующим образом:

  • Text: description
  • Tags: tags
  • TimeEnd: end_time

Аннотации Flux

Для источников данных, настроенных на Flux, аннотации используют стандартный редактор запросов Flux. Напишите запрос Flux, возвращающий фреймы данных с полями времени, текста и, необязательно, тегов.

Пример запроса аннотации Flux

flux
from(bucket: "events")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "deployments")
  |> pivot(rowKey: ["_time"], columnKey: ["_field"], valueColumn: "_value")

Grafana обрабатывает полученные фреймы данных как события аннотаций. Убедитесь, что запрос возвращает столбец _time и хотя бы один текстовый столбец.

Аннотации SQL

Источники данных, настроенные на SQL (InfluxDB 3.x), используют стандартный редактор запросов аннотаций Grafana. Напишите SQL-запрос, возвращающий столбец времени и хотя бы один текстовый столбец. Используйте макрос $__timeFilter(time), чтобы ограничить результаты диапазоном времени дашборда.

Пример запроса аннотации SQL

SQL
SELECT time, title, description
FROM events
WHERE $__timeFilter(time)
ORDER BY time ASC

Пример аннотации-диапазона SQL

Чтобы отображать события с длительностью как затенённые области, верните и время начала, и время окончания:

SQL
SELECT time, end_time, description, tags
FROM maintenance_windows
WHERE $__timeFilter(time)
ORDER BY time ASC

Настройте сопоставления полей:

  • Text: description
  • Tags: tags
  • TimeEnd: end_time

Использование шаблонных переменных в аннотациях

Вы можете использовать шаблонные переменные в запросах аннотаций, чтобы фильтровать аннотации на основе выбранных на дашборде значений переменных. Например:

SQL
SELECT title, description
FROM events
WHERE $timeFilter AND environment = '$environment'
ORDER BY time ASC

Если аннотации не отображаются или возникают ошибки, см. раздел Устранение неполадок источника данных InfluxDB.