Провижининг источников

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

Провизионирование источников данных в Grafana означает определение их конфигурации в YAML-файлах, размещённых в директории /etc/grafana/provisioning/datasources/, чтобы Grafana автоматически создавала или обновляла источник данных при запуске без ручной настройки через интерфейс. Каждый YAML-файл может описывать один или несколько источников данных в ключе datasources:, задавая такие свойства, как name, type, url, access, isDefault и jsonData для специфичных для типа параметров вроде prometheusVersion или tlsSkipVerify. Чувствительные значения — пароли и API-ключи — следует передавать через ключ secureJsonData или посредством подстановки переменных окружения (например, password: $GF_DS_PROMETHEUS_PASSWORD), чтобы не хранить секреты в открытом виде в файле провизионирования. Установка editable: false в YAML провизионирования источника данных запрещает пользователям изменять его через интерфейс Grafana, сохраняя файл провизионирования как единственный источник истины. Провизионируемые источники данных особенно важны в контейнеризованных развёртываниях Grafana, где контейнер является эфемерным: монтирование директории провизионирования как ConfigMap или том гарантирует, что каждый новый контейнер 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 (теряются при рестарте).

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

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