Аннотации MySQL
Аннотации накладывают данные о событиях на графики вашего дашборда, помогая соотносить события с метриками. Вы можете использовать MySQL как источник данных для аннотаций, чтобы отображать на визуализациях такие события, как развёртывания, алерты и другие значимые происшествия.
Общую информацию об аннотациях см. в разделе Annotate visualizations.
Перед началом
Прежде чем создавать аннотации MySQL, убедитесь, что у вас есть:
- Источник данных MySQL, настроенный в Grafana.
- Таблицы с данными о событиях, содержащие поля с отметками времени.
- Доступ на чтение к таблицам, содержащим ваши события.
Создание запроса аннотации
Чтобы добавить аннотацию MySQL на дашборд:
- Перейдите к дашборду, который хотите изменить, и нажмите Edit.
- Нажмите значок Add new element (синий плюс).
- Нажмите Annotation query.
- Введите имя для запроса аннотации.
- Если вы не хотите использовать запрос аннотации сразу, снимите флажок Enabled.
- Выберите цвет для маркеров событий аннотации.
- Выберите значение в раскрывающемся списке Show annotation controls in, чтобы управлять тем, в какой части дашборда отображается аннотация.
- Выберите значение в раскрывающемся списке Show in, чтобы управлять тем, на каких панелях отображается аннотация.
- Нажмите Open query editor, чтобы открыть диалоговое окно Annotation Query.
- Выберите ваш источник данных MySQL в раскрывающемся списке Data source.
- Настройте запрос аннотации и сопоставления полей.
- (Необязательно) Нажмите Test annotation query, чтобы убедиться, что запрос работает правильно.
- Нажмите Close, когда завершите настройку запроса.
- Нажмите Save.
- (Необязательно) Введите описание внесённых изменений.
- Нажмите Save.
- Нажмите Exit edit.
Столбцы запроса
Ваш запрос аннотации должен возвращать столбец time и может дополнительно включать столбцы timeend, text и tags.
Примеры запросов
Приведённые ниже примеры иллюстрируют типичные шаблоны запросов аннотаций.
Базовая аннотация с временем в формате epoch
Отображение событий с использованием отметок времени UNIX epoch:
SELECT
epoch_time as time,
description as text,
CONCAT(tag1, ',', tag2) as tags
FROM events
WHERE $__unixEpochFilter(epoch_time)
Аннотация с одной меткой
Отображение событий с одним значением метки:
SELECT
epoch_time as time,
message as text,
category as tags
FROM event_log
WHERE $__unixEpochFilter(epoch_time)
Аннотация диапазона с начальным и конечным временем
Отображение событий с длительностью в виде затенённых областей:
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:
SELECT
event_date as time,
message as text,
CONCAT(category, ',', priority) as tags
FROM system_events
WHERE $__timeFilter(event_date)
Аннотации развёртываний
Отображение событий развёртывания:
SELECT
deployed_at as time,
CONCAT('Deployed ', version, ' to ', environment) as text,
environment as tags
FROM deployments
WHERE $__timeFilter(deployed_at)
Аннотации окон обслуживания
Отображение окон обслуживания в виде аннотаций диапазона:
SELECT
start_time as time,
end_time as timeend,
CONCAT('Maintenance: ', description) as text,
'maintenance' as tags
FROM maintenance_windows
WHERE $__timeFilter(start_time)
Макросы
Используйте эти макросы в запросах аннотаций, чтобы фильтровать данные по временному диапазону дашборда:
Рекомендации
Придерживайтесь этих рекомендаций при создании аннотаций MySQL:
- Используйте фильтры по времени: всегда включайте
$__timeFilter()или$__unixEpochFilter(), чтобы ограничить результаты временным диапазоном дашборда. - Оставляйте запросы эффективными: добавляйте индексы по столбцам времени и фильтрации, чтобы повысить производительность запросов.
- Используйте осмысленный текст: включайте описательную информацию в столбец
text, чтобы аннотации были полезными. - Упорядочивайте с помощью меток: используйте согласованные значения меток для категоризации аннотаций и включения фильтрации.
- Сначала тестируйте запросы: убедитесь, что запрос возвращает ожидаемые результаты в Explore, прежде чем добавлять его как аннотацию.