Grafana
Дашборды, алерты и аннотации Grafana в процессах Pailot
Grafana — дашборды и алерты по метрикам из разных источников. Блок ходит в API (Application Programming Interface — программный интерфейс) по токену сервисного аккаунта.
С Grafana в Pailot вы можете:
- Читать, создавать, обновлять и удалять дашборды
- Управлять правилами алертов и точками уведомления
- Ставить и искать аннотации
- Смотреть источники данных и папки
Нужны apiKey (Service Account Token) и baseUrl инстанса. Блок ставят на холст как отдельный шаг или прикрепляют к агенту. Токен — в переменных окружения рабочего пространства.
Дашборд по UID
| Параметр | Тип | Обязательный | Описание |
|---|
apiKey | string | Да | Токен сервисного аккаунта Grafana |
baseUrl | string | Да | URL инстанса Grafana (например, https://your-grafana.com) |
organizationId | string | Нет | ID организации (если несколько организаций) |
dashboardUid | string | Да | UID дашборда |
| Параметр | Тип | Описание |
|---|
dashboard | json | Полный JSON дашборда |
meta | json | Метаданные дашборда (версия, права и др.) |
Поиск и список дашбордов
| Параметр | Тип | Обязательный | Описание |
|---|
apiKey | string | Да | Токен сервисного аккаунта Grafana |
baseUrl | string | Да | URL инстанса Grafana (например, https://your-grafana.com) |
organizationId | string | Нет | ID организации (если несколько организаций) |
query | string | Нет | Поиск дашбордов по названию |
tag | string | Нет | Фильтр по тегу (несколько через запятую) |
folderIds | string | Нет | Фильтр по ID папок (через запятую) |
starred | boolean | Нет | Только избранные дашборды |
limit | number | Нет | Максимум дашбордов |
| Параметр | Тип | Описание |
|---|
dashboards | array | Результаты поиска дашбордов |
↳ id | number | ID дашборда |
↳ uid | string | UID дашборда |
↳ title | string | Название дашборда |
↳ url | string | Путь URL дашборда |
↳ tags | array | Теги дашборда |
↳ folderTitle | string | Название родительской папки |
Создать дашборд
| Параметр | Тип | Обязательный | Описание |
|---|
apiKey | string | Да | Токен сервисного аккаунта Grafana |
baseUrl | string | Да | URL инстанса Grafana (например, https://your-grafana.com) |
organizationId | string | Нет | ID организации (если несколько организаций) |
title | string | Да | Название дашборда |
folderUid | string | Нет | UID папки |
tags | string | Нет | Теги через запятую |
timezone | string | Нет | Часовой пояс дашборда (например, browser, utc) |
refresh | string | Нет | Интервал автообновления (например, 5s, 1m, 5m) |
panels | string | Нет | JSON-массив панелей |
overwrite | boolean | Нет | Перезаписать дашборд с тем же названием |
message | string | Нет | Сообщение коммита версии дашборда |
| Параметр | Тип | Описание |
|---|
id | number | Числовой ID созданного дашборда |
uid | string | UID созданного дашборда |
url | string | Путь URL дашборда |
status | string | Статус операции (success) |
version | number | Версия дашборда |
slug | string | Слаг дашборда |
Обновить дашборд: взять текущий и слить правки.
| Параметр | Тип | Обязательный | Описание |
|---|
apiKey | string | Да | Токен сервисного аккаунта Grafana |
baseUrl | string | Да | URL инстанса Grafana (например, https://your-grafana.com) |
organizationId | string | Нет | ID организации (если несколько организаций) |
dashboardUid | string | Да | UID дашборда |
title | string | Нет | Новое название дашборда |
folderUid | string | Нет | UID новой папки |
tags | string | Нет | Новые теги через запятую |
timezone | string | Нет | Часовой пояс дашборда (например, browser, utc) |
refresh | string | Нет | Интервал автообновления (например, 5s, 1m, 5m) |
panels | string | Нет | JSON-массив панелей |
overwrite | boolean | Нет | Перезаписать при конфликте версии |
message | string | Нет | Сообщение коммита этой версии |
| Параметр | Тип | Описание |
|---|
id | number | Числовой ID обновлённого дашборда |
uid | string | UID обновлённого дашборда |
url | string | Путь URL дашборда |
status | string | Статус операции (success) |
version | number | Новая версия дашборда |
slug | string | Слаг дашборда |
Удалить дашборд по UID
| Параметр | Тип | Обязательный | Описание |
|---|
apiKey | string | Да | Токен сервисного аккаунта Grafana |
baseUrl | string | Да | URL инстанса Grafana (например, https://your-grafana.com) |
organizationId | string | Нет | ID организации (если несколько организаций) |
dashboardUid | string | Да | UID дашборда |
| Параметр | Тип | Описание |
|---|
title | string | Название удалённого дашборда |
message | string | Сообщение подтверждения |
id | number | ID удалённого дашборда |
Список правил алертов инстанса Grafana
| Параметр | Тип | Обязательный | Описание |
|---|
apiKey | string | Да | Токен сервисного аккаунта Grafana |
baseUrl | string | Да | URL инстанса Grafana (например, https://your-grafana.com) |
organizationId | string | Нет | ID организации (если несколько организаций) |
| Параметр | Тип | Описание |
|---|
rules | array | Список правил алертов |
↳ uid | string | UID правила алерта |
↳ title | string | Название правила алерта |
↳ condition | string | Условие алерта |
↳ folderUID | string | UID родительской папки |
↳ ruleGroup | string | Имя группы правил |
↳ noDataState | string | Состояние при отсутствии данных |
↳ execErrState | string | Состояние при ошибке выполнения |
Правило алерта по UID
| Параметр | Тип | Обязательный | Описание |
|---|
apiKey | string | Да | Токен сервисного аккаунта Grafana |
baseUrl | string | Да | URL инстанса Grafana (например, https://your-grafana.com) |
organizationId | string | Нет | ID организации (если несколько организаций) |
alertRuleUid | string | Да | UID правила алерта |
| Параметр | Тип | Описание |
|---|
uid | string | UID правила алерта |
title | string | Название правила алерта |
condition | string | Условие алерта |
data | json | Данные запроса правила алерта |
folderUID | string | UID родительской папки |
ruleGroup | string | Имя группы правил |
noDataState | string | Состояние при отсутствии данных |
execErrState | string | Состояние при ошибке выполнения |
annotations | json | Аннотации алерта |
labels | json | Метки алерта |
Создать правило алерта
| Параметр | Тип | Обязательный | Описание |
|---|
apiKey | string | Да | Токен сервисного аккаунта Grafana |
baseUrl | string | Да | URL инстанса Grafana (например, https://your-grafana.com) |
organizationId | string | Нет | ID организации (если несколько организаций) |
title | string | Да | Название правила алерта |
folderUid | string | Да | UID папки для алерта |
ruleGroup | string | Да | Имя группы правил |
condition | string | Да | refId запроса или выражения для условия |
data | string | Да | JSON-массив запросов и выражений |
forDuration | string | Нет | Сколько ждать до срабатывания (например, 5m, 1h) |
noDataState | string | Нет | Состояние при отсутствии данных (NoData, Alerting, OK) |
execErrState | string | Нет | Состояние при ошибке выполнения (Alerting, OK) |
annotations | string | Нет | JSON-объект аннотаций |
labels | string | Нет | JSON-объект меток |
| Параметр | Тип | Описание |
|---|
uid | string | UID созданного правила алерта |
title | string | Название правила алерта |
folderUID | string | UID родительской папки |
ruleGroup | string | Имя группы правил |
Обновить правило алерта: взять текущее и слить правки.
| Параметр | Тип | Обязательный | Описание |
|---|
apiKey | string | Да | Токен сервисного аккаунта Grafana |
baseUrl | string | Да | URL инстанса Grafana (например, https://your-grafana.com) |
organizationId | string | Нет | ID организации (если несколько организаций) |
alertRuleUid | string | Да | UID правила алерта |
title | string | Нет | Новое название правила |
folderUid | string | Нет | UID новой папки |
ruleGroup | string | Нет | Новое имя группы правил |
condition | string | Нет | Новый refId условия |
data | string | Нет | Новый JSON-массив запросов |
forDuration | string | Нет | Сколько ждать до срабатывания (например, 5m, 1h) |
noDataState | string | Нет | Состояние при отсутствии данных (NoData, Alerting, OK) |
execErrState | string | Нет | Состояние при ошибке выполнения (Alerting, OK) |
annotations | string | Нет | JSON-объект аннотаций |
labels | string | Нет | JSON-объект меток |
| Параметр | Тип | Описание |
|---|
uid | string | UID обновлённого правила алерта |
title | string | Название правила алерта |
folderUID | string | UID родительской папки |
ruleGroup | string | Имя группы правил |
Удалить правило алерта по UID
| Параметр | Тип | Обязательный | Описание |
|---|
apiKey | string | Да | Токен сервисного аккаунта Grafana |
baseUrl | string | Да | URL инстанса Grafana (например, https://your-grafana.com) |
organizationId | string | Нет | ID организации (если несколько организаций) |
alertRuleUid | string | Да | UID правила алерта |
| Параметр | Тип | Описание |
|---|
message | string | Сообщение подтверждения |
Список точек уведомления алертов
| Параметр | Тип | Обязательный | Описание |
|---|
apiKey | string | Да | Токен сервисного аккаунта Grafana |
baseUrl | string | Да | URL инстанса Grafana (например, https://your-grafana.com) |
organizationId | string | Нет | ID организации (если несколько организаций) |
| Параметр | Тип | Описание |
|---|
contactPoints | array | Список точек уведомления |
↳ uid | string | UID точки уведомления |
↳ name | string | Имя точки уведомления |
↳ type | string | Тип уведомления (email, slack и др.) |
↳ settings | object | Настройки типа |
Создать аннотацию на дашборде или глобальную
| Параметр | Тип | Обязательный | Описание |
|---|
apiKey | string | Да | Токен сервисного аккаунта Grafana |
baseUrl | string | Да | URL инстанса Grafana (например, https://your-grafana.com) |
organizationId | string | Нет | ID организации (если несколько организаций) |
text | string | Да | Текст аннотации |
tags | string | Нет | Теги через запятую |
dashboardUid | string | Да | UID дашборда для аннотации |
panelId | number | Нет | ID панели для аннотации |
time | number | Нет | Начало в epoch-миллисекундах (по умолчанию сейчас) |
timeEnd | number | Нет | Конец в epoch-миллисекундах (для интервала) |
| Параметр | Тип | Описание |
|---|
id | number | ID созданной аннотации |
message | string | Сообщение подтверждения |
Аннотации по интервалу, дашборду или тегам
| Параметр | Тип | Обязательный | Описание |
|---|
apiKey | string | Да | Токен сервисного аккаунта Grafana |
baseUrl | string | Да | URL инстанса Grafana (например, https://your-grafana.com) |
organizationId | string | Нет | ID организации (если несколько организаций) |
from | number | Нет | Начало в epoch-миллисекундах |
to | number | Нет | Конец в epoch-миллисекундах |
dashboardUid | string | Да | UID дашборда для аннотаций |
panelId | number | Нет | Фильтр по ID панели |
tags | string | Нет | Теги через запятую для фильтра |
type | string | Нет | Фильтр типа (alert или annotation) |
limit | number | Нет | Максимум аннотаций |
| Параметр | Тип | Описание |
|---|
annotations | array | Список аннотаций |
↳ id | number | ID аннотации |
↳ dashboardId | number | ID дашборда |
↳ dashboardUID | string | UID дашборда |
↳ created | number | Когда создали in epoch ms |
↳ updated | number | Когда обновляли in epoch ms |
↳ time | number | Начало в epoch-мс |
↳ timeEnd | number | Конец в epoch-мс |
↳ text | string | Текст аннотации |
↳ tags | array | Теги аннотации |
↳ login | string | Логин автора аннотации |
↳ email | string | Email автора аннотации |
↳ avatarUrl | string | URL аватара |
↳ data | json | Дополнительные данные аннотации Grafana |
Обновить аннотацию
| Параметр | Тип | Обязательный | Описание |
|---|
apiKey | string | Да | Токен сервисного аккаунта Grafana |
baseUrl | string | Да | URL инстанса Grafana (например, https://your-grafana.com) |
organizationId | string | Нет | ID организации (если несколько организаций) |
annotationId | number | Да | ID аннотации |
text | string | Да | Новый текст аннотации |
tags | string | Нет | Новые теги через запятую |
time | number | Нет | Новое начало в epoch-миллисекундах |
timeEnd | number | Нет | Новый конец в epoch-миллисекундах |
| Параметр | Тип | Описание |
|---|
id | number | ID обновлённой аннотации |
message | string | Сообщение подтверждения |
Удалить аннотацию по ID
| Параметр | Тип | Обязательный | Описание |
|---|
apiKey | string | Да | Токен сервисного аккаунта Grafana |
baseUrl | string | Да | URL инстанса Grafana (например, https://your-grafana.com) |
organizationId | string | Нет | ID организации (если несколько организаций) |
annotationId | number | Да | ID аннотации |
| Параметр | Тип | Описание |
|---|
message | string | Сообщение подтверждения |
Список источников данных Grafana
| Параметр | Тип | Обязательный | Описание |
|---|
apiKey | string | Да | Токен сервисного аккаунта Grafana |
baseUrl | string | Да | URL инстанса Grafana (например, https://your-grafana.com) |
organizationId | string | Нет | ID организации (если несколько организаций) |
| Параметр | Тип | Описание |
|---|
dataSources | array | Список источников данных |
↳ id | number | ID источника данных |
↳ uid | string | UID источника данных |
↳ name | string | Имя источника данных |
↳ type | string | Тип источника (prometheus, mysql и др.) |
↳ url | string | URL источника данных |
↳ isDefault | boolean | Источник данных по умолчанию |
Источник данных по ID или UID
| Параметр | Тип | Обязательный | Описание |
|---|
apiKey | string | Да | Токен сервисного аккаунта Grafana |
baseUrl | string | Да | URL инстанса Grafana (например, https://your-grafana.com) |
organizationId | string | Нет | ID организации (если несколько организаций) |
dataSourceId | string | Да | ID или UID источника данных |
| Параметр | Тип | Описание |
|---|
id | number | ID источника данных |
uid | string | UID источника данных |
name | string | Имя источника данных |
type | string | Тип источника данных |
url | string | URL подключения источника |
database | string | Имя базы (если есть) |
isDefault | boolean | Источник данных по умолчанию |
jsonData | json | Дополнительная конфигурация источника |
Список папок Grafana
| Параметр | Тип | Обязательный | Описание |
|---|
apiKey | string | Да | Токен сервисного аккаунта Grafana |
baseUrl | string | Да | URL инстанса Grafana (например, https://your-grafana.com) |
organizationId | string | Нет | ID организации (если несколько организаций) |
limit | number | Нет | Максимум папок |
page | number | Нет | Номер страницы |
| Параметр | Тип | Описание |
|---|
folders | array | Список папок |
↳ id | number | ID папки |
↳ uid | string | UID папки |
↳ title | string | Название папки |
↳ hasAcl | boolean | У папки свои ACL |
↳ canSave | boolean | Текущий пользователь может сохранить папку |
↳ canEdit | boolean | Текущий пользователь может править папку |
↳ canAdmin | boolean | У текущего пользователя права администратора |
↳ canDelete | boolean | Текущий пользователь может удалить папку |
↳ createdBy | string | Кто создал папку |
↳ created | string | Когда папку создали |
↳ updatedBy | string | Кто обновлял папку последним |
↳ updated | string | Когда папку обновляли |
↳ version | number | Версия папки |
Создать папку в Grafana
| Параметр | Тип | Обязательный | Описание |
|---|
apiKey | string | Да | Токен сервисного аккаунта Grafana |
baseUrl | string | Да | URL инстанса Grafana (например, https://your-grafana.com) |
organizationId | string | Нет | ID организации (если несколько организаций) |
title | string | Да | Название папки |
uid | string | Нет | UID папки (если пусто — сгенерируется) |
| Параметр | Тип | Описание |
|---|
id | number | Числовой ID созданной папки |
uid | string | UID созданной папки |
title | string | Название созданной папки |
url | string | Путь URL папки |
hasAcl | boolean | У папки свои ACL |
canSave | boolean | Текущий пользователь может сохранить папку |
canEdit | boolean | Текущий пользователь может править папку |
canAdmin | boolean | У текущего пользователя права администратора папки |
canDelete | boolean | Текущий пользователь может удалить папку |
createdBy | string | Кто создал папку |
created | string | Когда папку создали |
updatedBy | string | Кто обновлял папку последним |
updated | string | Когда папку обновляли |
version | number | Версия папки |