TGViewer
ДевОпс Інженер 🇺🇦 ДевОпс Інженер 🇺🇦 @devopsengineer · 4.96K subscribers
Post #66 3.69K
Импорт/экспорт Grafana dashboards

Пришла мне таска - взять все существующие дашборды для графаны, немного их подкрутить, и пушнуть туда же как новые. Темплейтинг заюзать нельзя - оно там все супер-динамическое с завязкой на свой датасорс для каждого конкретного хоста. Короче - гемор.

И этих дашбордов более нескольких десятков.

Сразу дока, API - и погнали. Есть на импорт/экспорт, а значит кто-то уже писал автоматизацию.

Полез я в интернет, и сразу наткнулся на github gists, где разные ребята в коментах писали свои версии скриптов. Но вроде же дожно быть что-то более продакшн реди? И да, есть либа:
💥 https://github.com/hagen1778/grafana-import-export

Она заэкспортила дашборды, и пришла очередь фиксить json.

Для этого есть тулза jq, не самая удобная, но работает. Пример, где в slug меняется поле:
jq '(.meta.slug |= "aws-" + .)' $filename - на поиск синтаксиса ушло 2 чашки чая 🙁

Датасорсы в графиках лучше менять с помощью sed:
sed 's/"datasource": "influxdb"/"datasource": "new-datasource"/g' - через jq тяжело обойти все вложенные ключи, и не сломать лишнего

Обязательно нужно поменять title - иначе ничего работать не будет (упадет с ошибкой):
jq '(.dashboard.title |= "AWS | " + .)' $filename - тут добавляется 'AWS | ' и существующее имя дашборда

Это все очевидные вещи, но в конце ждал сюрприз. Ошибка The dashboard has been changed by someone else. Хм, что же это значит? Сразу мысль подсказала посмотреть на ключи version и id. Ключа с версией небыло, а вот id был. Где-то на гитхабе советовали засетить его как null, или вообще удалить. Ну я и удалил:
jq 'del(.dashboard.id)' $filename

После этого дашборды заэкспортились и все взлетело.

Надеюсь, сохранил вам несколько часов гугления и набивания шишек 😄
GitHub GitHub - hagen1778/grafana-import-export: shell scripts for importing and exporting Grafana's dashboards and datasources shell scripts for importing and exporting Grafana's dashboards and datasources - hagen1778/grafana-import-export
More from @devopsengineer
  1. Jul 29, 2026Ще кілька років тому шлях у DevOps був більш-менш зрозумілим. Проте сьогодні AI бере на се…
  2. Jun 11, 2026AI-first SDLC, Agentic Engineering, Agents, IDEs, Claude Code, Cursor, GitHub Copilot, Ope…
  3. Jun 9, 2026Шановне панство, Звертаю вашу увагу: якщо ви вже награлися з AGENTS.md / CLAUDE.md, self-h…
  4. May 28, 2026Linux kernel, namespaces, cgroups, LXC, Docker, multi-stage builds, distroless images, con…
  5. Mar 9, 2026На fwdays було багато цікавих доповідей, але особливо хочу зазначити доповідь Володимира Ц…
  6. Feb 2, 2026AWS Certified Generative AI Developer - Professional Доброго дня, Десь пролітало по сусідн…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →