Перейти к содержанию

Языки запросов и создание графиков

Ниже приведён шаблонный процесс, который используется в monitoring_services для создания, тестирования и публикации дашбордов Grafana.


1. Подготовка

  1. Убедитесь, что локальная среда Grafana запущена и подключена к тем же источникам данных, что и прод-экземпляр.
  2. Проверьте, существует ли папка (folder) Grafana, куда должен попасть будущий дашборд. Список актуальных папок хранится в folders.yml.
  3. Если нужной папки нет – создайте её (см. шаг 4.2 ниже).

2. Разработка в UI Grafana

  1. Войдите в Grafana под ролью Editor или Admin.
  2. Нажмите + ➜ Dashboard и добавьте панели (Panels).
  3. Настройте запросы, единицы измерения, заголовки, цветовые пороги и пр.
  4. Обязательно задокументируйте переменные (Variables) – они должны иметь понятные описания и значения по умолчанию.
  5. Сохраните дашборд (Save), задайте UID в формате snake_case (пример: asuppk_cert_expire).

UID необходим, чтобы при импорте не возникало дубликатов.


3. Экспорт JSON

  1. Откройте меню Share ➜ Export ➜ Save to file.
  2. Скачанный JSON-файл переименуйте, соблюдая правила: только латиница, символ _, расширение .json.

4. Публикация в репозиторий

4.1 Добавление дашборда

  1. Поместите JSON-файл в соответствующий каталог config/grafana/deployment/docker/dashboards/<folder>/.
  2. Создайте Merge/Pull Request с кратким описанием назначения дашборда и скриншотом первой панели.

4.2 Добавление новой папки

  1. Придумайте человеко-читаемое название и уникальный id (> 100, чтобы не конфликтовать с системными).
  2. В файл folders.yml добавьте новую запись: ```yaml
  3. name: 'Название папки' id: 8 ```
  4. В файл dashboard.yml пропишите провайдер: ```yaml
  5. name: my_new_folder orgId: 1 folder: 'Название папки' type: file options: path: /var/lib/grafana/dashboards/my_new_folder/ ```
  6. Создайте одноимённую директорию в dashboards/ и добавьте туда JSON-файлы.

5. Доставка в прод

  1. После мержа PR CI/CD (или админ) выполняет docker compose pull && docker compose up -d для сервиса Grafana.
  2. Grafana в течение ~10 сек обнаружит новые JSON-файлы и автоматически обновит/создаст дашборды.
  3. Проверьте визуально, что дашборд отобразился в нужной папке и корректно строит графики.

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.