Провижининг

Тема дорожной карты · Grafana

Провизионирование в Grafana — это механизм декларативного определения источников данных, дашбордов, правил алертинга и политик уведомлений в YAML или JSON-конфигурационных файлах, которые Grafana читает при запуске. Это позволяет полностью воспроизводимые, GitOps-совместимые развёртывания Grafana без ручной настройки через интерфейс. Провизионируемые ресурсы хранятся в файловой системе в /etc/grafana/provisioning/ (или по пути, указанному в GF_PATHS_PROVISIONING) в поддиректориях datasources/, dashboards/, alerting/ и plugins/. Grafana автоматически загружает и применяет файлы провизионирования при запуске и, для дашбордов, периодически опрашивает настроенную директорию на предмет изменений, так что новые или обновлённые JSON-файлы дашбордов подхватываются без перезапуска. Провизионируемые ресурсы по умолчанию считаются неизменяемыми в интерфейсе Grafana — редакторы не могут сохранять изменения в провизионированном дашборде, — что гарантирует, что определение в файловой системе остаётся единственным источником истины, а ручные правки через интерфейс не создают расхождений. Провизионирование является рекомендуемым подходом для управления Grafana в CI/CD-конвейерах, Docker и Kubernetes, где инфраструктура определяется как код, и отлично сочетается с инструментами «Grafana как код» — Grafonnet и Terraform-провайдером Grafana.

Как это работает

Провижининг: YAML-файлы в /etc/grafana/provisioning/ декларируют data sources (datasources/*.yaml), дашборды (dashboards/*.yaml + пути к JSON), alerting-rules, notification policies, плагины. Читаются при старте Grafana; изменения требуют kill -HUP или рестарт. В паре с version control: dashboards-as-code. Инструменты: grafonnet (Jsonnet), grafana-foundation-sdk (Go/Python) или просто JSON. Helm chart kube-prometheus-stack provisions автоматически.

Когда применять

Provision data sources + критичные дашборды с первого дня — ручной setup невоспроизводим. Дашборды в git как JSON; auto-import через provisioning. Grafonnet или templating-слой — если много похожих дашбордов (per-service). Для очень динамических setup также работают Grafana HTTP API + Terraform-провайдер.

Типичные ошибки

Ловушки Провижининг: отредактировали дашборд в UI + provisioning откатывает на следующем рестарте (путает юзеров); JSON-дашборды с ручными правками вне исходника (дрейф); provisioning-пути внутри Grafana-контейнера без persistent volume (теряются при рестарте).

Связанные понятия

Полезные ресурсы

Проверить знания (1)

Загрузка вопросов…