Управление ресурсами с помощью grafanactl
Caution
grafanactlвыводится из эксплуатации, и весь наш опыт и наработки переходят в новый, улучшенный инструмент CLIgcx. Репозиторийgrafanactlна GitHub будет заархивирован 1 июня 2026 года.Чтобы перейти с
grafanactlнаgcx, выполните поиск с заменойgrafanactlнаgcx. Вместоgrafanactl resources serveиспользуйтеgcx dev serve.
Перенос ресурсов между средами
С помощью параметров config и resources вы можете переносить ресурсы Grafana из одной среды в другую, например из среды разработки в промышленную эксплуатацию.
Параметр config позволяет задать контекст конфигурации.
Использование resources с командами pull, push и serve позволяет извлекать заданный ресурс из одного экземпляра и отправлять его в другой. Команда serve позволяет просматривать изменения локально перед отправкой.
Чтобы перенести ресурсы между средами, выполните следующие шаги:
Note
В настоящее время команда
serveработает только с дашбордами.
Чтобы перенести ресурсы между средами, выполните следующие шаги:
Note
По умолчанию ресурсы извлекаются и отправляются из каталога
./resources. Это можно изменить с помощью флагов-p, --path, указав собственные пути на диске.
-
Внесите изменения в дашборды и другие ресурсы через интерфейс Grafana в вашем development instance.
-
Извлеките эти ресурсы из среды разработки на локальную машину:
grafanactl config use-context YOUR_CONTEXT grafanactl resources pull --path ./resources/ -o yaml -
(Необязательно) Просмотрите ресурсы локально перед отправкой:
grafanactl config use-context YOUR_CONTEXT grafanactl resources serve ./resources/ -
Переключитесь на production instance и отправьте ресурсы:
grafanactl config use-context YOUR_CONTEXT grafanactl resources push -p ./resources/
Резервное копирование ресурсов Grafana
Этот рабочий процесс помогает создать резервную копию всех ресурсов Grafana из одного экземпляра и в дальнейшем восстановить их. Это полезно для тиражирования конфигурации или восстановления после сбоя.
-
С помощью
grafanactlизвлеките все ресурсы из целевой среды:grafanactl config use-context YOUR_CONTEXT grafanactl resources pull --path ./resources/ -o yaml -
Сохраните выгруженные ресурсы в системе контроля версий или облачном хранилище.
Восстановление ресурсов Grafana
-
(Необязательно) Просмотрите резервную копию локально:
grafanactl config use-context YOUR_CONTEXT grafanactl resources serve ./resources/ -
Чтобы восстановить ресурсы позже или восстановить их на другом экземпляре, отправьте сохранённые ресурсы:
grafanactl config use-context YOUR_CONTEXT grafanactl resources push -p ./resources/
Управление дашбордами как кодом
С помощью этого рабочего процесса вы можете определять дашборды как код и управлять ими, сохраняя их в системе контроля версий, например Git. Это полезно командам, которые хотят вести историю изменений, совместно работать над дизайном дашбордов и обеспечивать согласованность между средами.
-
Используйте скрипт генерации дашбордов (например, с Foundation SDK). Пример реализации можно найти в репозитории практических занятий по Grafana as code.
-
Запустите локально сервис и просмотрите результат работы генератора дашбордов:
grafanactl config use-context YOUR_CONTEXT grafanactl resources serve --script 'go run scripts/generate-dashboard.go' --watch './scripts' -
Когда результат выглядит корректно, сгенерируйте файлы манифестов дашбордов:
go run scripts/generate-dashboard.go --generate-resource-manifests --output './resources' -
Отправьте сгенерированные ресурсы в ваш экземпляр Grafana:
grafanactl config use-context YOUR_CONTEXT grafanactl resources push -p ./resources/
Изучение и изменение ресурсов из терминала
В этом разделе описано, как использовать Grafana CLI для работы с ресурсами Grafana напрямую из терминала. Эти команды позволяют просматривать, инспектировать, обновлять и удалять ресурсы, не используя интерфейс Grafana. Такой подход полезен опытным пользователям, которые хотят управлять ресурсами эффективнее или встраивать операции Grafana в автоматизированные рабочие процессы.
Поиск и удаление дашбордов с некорректными источниками данных
Используйте этот рабочий процесс, чтобы выявить дашборды, которые ссылаются на неверные или устаревшие источники данных, и при необходимости удалить их.
-
Установите контекст для нужной среды:
grafanactl config use-context YOUR_CONTEXT -
Найдите дашборды, использующие определённые источники данных:
grafanactl resources get dashboards -ojson | jq '.items | map({ uid: .metadata.name, datasources: .spec.panels | map(.datasource.uid) })' [ { "uid": "important-production-dashboard", "datasources": [ "mimir-prod" ] }, { "uid": "test-dashboard-from-dev", "datasources": [ "mimir-prod", "mimir-dev" ] }, { "uid": "test-dashboard-from-stg", "datasources": [ "mimir-prod", "mimir-stg", "mimir-dev" ] } ]Эта команда выводит список UID дашбордов вместе с UID источников данных, используемых на их панелях. Затем вы можете определить дашборды, использующие неверные или неожиданные источники данных.
-
Удалите найденные дашборды напрямую:
grafanactl resources delete dashboards/test-dashboard-from-stg,test-dashboard-from-dev ✔ 2 resources deleted, 0 errors
Поиск и пометка устаревших дашбордов, использующих старую версию API
Используйте этот рабочий процесс, чтобы найти дашборды, использующие устаревшую версию API, и соответствующим образом пометить их.
-
Установите контекст для нужной среды:
grafanactl config use-context YOUR_CONTEXT -
Выведите список всех доступных типов и версий ресурсов:
grafanactl resources listЭта команда возвращает список ресурсов, включая их версии, типы и количество:
GROUP VERSION KIND folder.grafana.app v1 folder dashboard.grafana.app v1 dashboard dashboard.grafana.app v1 librarypanel dashboard.grafana.app v2 dashboard dashboard.grafana.app v2 librarypanel playlist.grafana.app v1 playlist -
Найдите дашборды, которые всё ещё используют устаревшую версию API:
grafanactl resources get dashboards.v1.dashboard.grafana.appЭта команда возвращает таблицу с типом ресурса, именем ресурса и связанным пространством имён:
KIND NAME NAMESPACE dashboards really-old-dashboard default -
Отредактируйте каждый из этих дашбордов, добавив тег
deprecated:grafanactl resources edit dashboards.v1.dashboard.grafana.app/really-old-dashboard -p '{"spec":{"tags":["deprecated"]}}'
Tip
Справку можно получить с помощью команды
grafanactl --help.