Языки запросов и создание графиков
Ниже приведён шаблонный процесс, который используется в monitoring_services для создания, тестирования и публикации дашбордов Grafana.
1. Подготовка
- Убедитесь, что локальная среда Grafana запущена и подключена к тем же источникам данных, что и прод-экземпляр.
- Проверьте, существует ли папка (folder) Grafana, куда должен попасть будущий дашборд. Список актуальных папок хранится в folders.yml.
- Если нужной папки нет – создайте её (см. шаг 4.2 ниже).
2. Разработка в UI Grafana
- Войдите в Grafana под ролью Editor или Admin.
- Нажмите
+ ➜ Dashboardи добавьте панели (Panels). - Настройте запросы, единицы измерения, заголовки, цветовые пороги и пр.
- Обязательно задокументируйте переменные (Variables) – они должны иметь понятные описания и значения по умолчанию.
- Сохраните дашборд (
Save), задайте UID в форматеsnake_case(пример:asuppk_cert_expire).
UID необходим, чтобы при импорте не возникало дубликатов.
3. Экспорт JSON
- Откройте меню
Share ➜ Export ➜ Save to file. - Скачанный JSON-файл переименуйте, соблюдая правила: только латиница, символ
_, расширение.json.
4. Публикация в репозиторий
4.1 Добавление дашборда
- Поместите JSON-файл в соответствующий каталог
config/grafana/deployment/docker/dashboards/<folder>/. - Создайте Merge/Pull Request с кратким описанием назначения дашборда и скриншотом первой панели.
4.2 Добавление новой папки
- Придумайте человеко-читаемое название и уникальный
id(> 100, чтобы не конфликтовать с системными). - В файл
folders.ymlдобавьте новую запись: ```yaml - name: 'Название папки' id: 8 ```
- В файл
dashboard.ymlпропишите провайдер: ```yaml - name: my_new_folder orgId: 1 folder: 'Название папки' type: file options: path: /var/lib/grafana/dashboards/my_new_folder/ ```
- Создайте одноимённую директорию в
dashboards/и добавьте туда JSON-файлы.
5. Доставка в прод
- После мержа PR CI/CD (или админ) выполняет
docker compose pull && docker compose up -dдля сервиса Grafana. - Grafana в течение ~10 сек обнаружит новые JSON-файлы и автоматически обновит/создаст дашборды.
- Проверьте визуально, что дашборд отобразился в нужной папке и корректно строит графики.
6. Чек-лист качества
- [ ] Названия панелей и осей подписаны на русском или английском (без транслита).
- [ ] Все запросы оптимизированы, нет
LIMIT 1000000. - [ ] UID и имя файла дашборда совпадают.
- [ ] Папка существует и описана в
folders.yml/dashboard.yml. - [ ] В описании PR приложен скриншот и краткое описание метрик.
Соблюдение чек-листа упрощает ревью и исключает «битые» дашборды в проде.
⚙️ При необходимости можно перезапустить только Grafana, не трогая остальные сервисы системы мониторинга:
cd config/grafana/deployment/docker
# обновить образ, если нужен
docker compose pull grafana
# пересобрать
docker compose up -d grafana
После перезапуска Grafana подхватит все изменения. Если требуется ускорить, используйте кнопку Server admin ➜ View ➜ Reload provisioning.