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

Аннотации MySQL

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

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

Перед началом

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

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

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

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

  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. Выберите ваш источник данных MySQL в раскрывающемся списке Data source.
  11. Настройте запрос аннотации и сопоставления полей.
  12. (Необязательно) Нажмите Test annotation query, чтобы убедиться, что запрос работает правильно.
  13. Нажмите Close, когда завершите настройку запроса.
  14. Нажмите Save.
  15. (Необязательно) Введите описание внесённых изменений.
  16. Нажмите Save.
  17. Нажмите Exit edit.

Столбцы запроса

Ваш запрос аннотации должен возвращать столбец time и может дополнительно включать столбцы timeend, text и tags.

Столбец Обязательный Описание
time Да Отметка времени для аннотации. Может быть датой-временем SQL или значением UNIX epoch.
timeend Нет Конечная отметка времени для аннотаций диапазона. Создаёт затенённую область вместо вертикальной линии.
text Нет Описание аннотации, отображаемое при наведении курсора на аннотацию.
tags Нет Метки (tags) для аннотации в виде строки, разделённой запятыми. Помогают категоризировать и фильтровать аннотации.

Примеры запросов

Приведённые ниже примеры иллюстрируют типичные шаблоны запросов аннотаций.

Базовая аннотация с временем в формате epoch

Отображение событий с использованием отметок времени UNIX epoch:

SQL
SELECT
  epoch_time as time,
  description as text,
  CONCAT(tag1, ',', tag2) as tags
FROM events
WHERE $__unixEpochFilter(epoch_time)

Аннотация с одной меткой

Отображение событий с одним значением метки:

SQL
SELECT
  epoch_time as time,
  message as text,
  category as tags
FROM event_log
WHERE $__unixEpochFilter(epoch_time)

Аннотация диапазона с начальным и конечным временем

Отображение событий с длительностью в виде затенённых областей:

SQL
SELECT
  start_time as time,
  end_time as timeend,
  description as text,
  CONCAT(type, ',', severity) as tags
FROM incidents
WHERE $__unixEpochFilter(start_time)

Аннотация с собственным типом datetime SQL

Отображение событий с использованием собственных столбцов datetime MySQL:

SQL
SELECT
  event_date as time,
  message as text,
  CONCAT(category, ',', priority) as tags
FROM system_events
WHERE $__timeFilter(event_date)

Аннотации развёртываний

Отображение событий развёртывания:

SQL
SELECT
  deployed_at as time,
  CONCAT('Deployed ', version, ' to ', environment) as text,
  environment as tags
FROM deployments
WHERE $__timeFilter(deployed_at)

Аннотации окон обслуживания

Отображение окон обслуживания в виде аннотаций диапазона:

SQL
SELECT
  start_time as time,
  end_time as timeend,
  CONCAT('Maintenance: ', description) as text,
  'maintenance' as tags
FROM maintenance_windows
WHERE $__timeFilter(start_time)

Макросы

Используйте эти макросы в запросах аннотаций, чтобы фильтровать данные по временному диапазону дашборда:

Макрос Описание
$__timeFilter(column) Фильтрует по временному диапазону, используя собственный столбец datetime SQL.
$__unixEpochFilter(column) Фильтрует по временному диапазону, используя столбец с отметками времени UNIX epoch.

Рекомендации

Придерживайтесь этих рекомендаций при создании аннотаций MySQL:

  • Используйте фильтры по времени: всегда включайте $__timeFilter() или $__unixEpochFilter(), чтобы ограничить результаты временным диапазоном дашборда.
  • Оставляйте запросы эффективными: добавляйте индексы по столбцам времени и фильтрации, чтобы повысить производительность запросов.
  • Используйте осмысленный текст: включайте описательную информацию в столбец text, чтобы аннотации были полезными.
  • Упорядочивайте с помощью меток: используйте согласованные значения меток для категоризации аннотаций и включения фильтрации.
  • Сначала тестируйте запросы: убедитесь, что запрос возвращает ожидаемые результаты в Explore, прежде чем добавлять его как аннотацию.