Провижининг дашбордов
Тема дорожной карты · Grafana
Провизионирование дашбордов в Grafana требует двух шагов: YAML-файла конфигурации провизионирования в /etc/grafana/provisioning/dashboards/, указывающего Grafana, где искать JSON-файлы дашбордов, и самих JSON-файлов дашбордов в указанной директории. YAML-конфигурация задаёт path к директории дашбордов, параметр updateIntervalSeconds, управляющий частотой опроса Grafana на предмет изменений файлов, а также опциональные флаги disableDeletion и editable — для управления тем, удаляет ли Grafana дашборды при удалении их JSON-файлов и могут ли пользователи редактировать провизионированные дашборды в интерфейсе. JSON-файлы дашбордов для провизионирования — это тот же JSON, который Grafana экспортирует при нажатии Dashboard settings > JSON Model или через HTTP API Grafana, что позволяет легко экспортировать существующий дашборд, сохранить его в Git-репозитории и провизионировать в другие экземпляры Grafana. Провизионируемые дашборды поддерживают организацию по папкам: ключ folder в YAML провизионирования помещает все дашборды из этой директории в именованную папку интерфейса Grafana, поддерживая порядок в больших библиотеках дашбордов. Комбинирование провизионируемых дашбордов с провизионируемыми источниками данных и системой шаблонов Grafana создаёт полностью автоматизированный, переносимый между окружениями мониторинговый стек, где каждый ресурс 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 (теряются при рестарте).