Комментарии 11
Всем спасибо за фидбек!
В конечном итоге избавился от Terraform, так его использование для Grafana только усложняет жизнь.
Первое что сделал - подключил PostgreSQL для хранения всех сущностей. Настроил dev окружение, вытащил дамп, применил для продовской, изменил некоторые моменты и готово! Теперь можно не переживать про хранение дашбордов и прочих сущностей, так как на базах данных производятся ежедневные бэкапы.
Если я не ошибаюсь, Grafana все свои настройки дашборды, датасорсы и т.п. хранит в grafana.db sqlite БД.
Она переносима вроде бы.
Да, но при этом будет ли перенос безболезненным? Как насчет UID и ID ресурсов? Плюсом у меня есть некоторые различия между дашбордами dev и prod среды (разные имена namespace-ов и deployment-ов), которые можно гибко настроить через Terraform.
Честно признаюсь, читал по диагонали, так как проходил похожий путь и отказался от него, так как работать с этим в команде достаточно сложно. Первая проблема - долгий цикл обратной связи на вносимое в визуализацию изменение.
Допустим, хочется поправить одну визуализацию?
В grafana мы просто заходим, правим, тут же видим результат, понимаем, что не совсем то, что мы хотели, правим запрос, еще раз смотрим то или нет, если то, то нажимаем сохранить и все.
В terraform , мы же не одни скорее всего работаем? Значит у нас настроен pipeline для автоматического применения правок. Да? Правим код, делаем коммит, push в репозиторий, init, validate, plan и appy, идем смотреть что получилось, не понравилось, опять коммит, push в репозиторий, init, validate, plan и appy. Это долго, это сложно, коллеги не понимаю, зачем им так страдать, когда grafana вот она рядом )
Пробовали другой формат, правим визуализацию, экспортируем json, закидываем в репозиторий. Но, так не сделать в датасорсами, алертами и тд
Пришли к тому, что сейчас, в k8s просто крутится джоба, которая раз в час бекапит всю графану, со всеми пользователями, дашбордами, директориями, датасорсами, алертами и прочим на s3, в архиве занимает минимум места.
С алертами тоже изначально искал заветную кнопку экспорта как у дашбордов, но найти не смог. Дальше изучил REST API Графаны и тоже ничего особого не нашёл. На форумах самой графаны кто-то скинул рабочий endpoint, но как оказалось JSON с алертами можно только выгрузить - как загружать непонятно.
Изначально мы использовали Grafana v8.x. В блоге Grafana нашёл [статью](https://grafana.com/blog/2023/03/06/grafana-alerting-12-ways-we-made-creating-and-managing-alerts-easier-than-ever/) про то, что заветная кнопка экспорта для алертов была добавлена в версии 9.4, решил сразу апгрейднуться до 10.0.5, но кнопки не обнаружил.
![Фото из блога по ссылке Фото из блога по ссылке](https://habrastorage.org/getpro/habr/upload_files/c56/9dc/d6f/c569dcd6fecdece334ffea4cbf48802f.png)
В случае если схожие друг с другом алерты создаются не так часто, то бэкап БД будет весьма кстати. Скорее всего так и сделаю - заменю sqlite базу данных на PostgreSQL, которая развернута в Yandex Cloud и бэкапится каждый день.
С другой стороны, на данный у меня алерты отслеживают только две метрики и отличаются друг от друга только названиями контейнеров. Но в дальнейшем планируется отслеживать больше показателей, чем сейчас.
решил сразу апгрейднуться до 10.0.5, но кнопки не обнаружил.
В 10.1.0 заветная кнопочка есть, хоть и прячется:
![](https://habrastorage.org/getpro/habr/upload_files/a37/521/71f/a3752171fa1bc3a035d45aa5ca99b076.png)
заменю sqlite базу данных на PostgreSQL
Это вообще само по себе хорошая идея, ибо когда алертов становится хотя бы несколько десятков - SQLite начинает жутко глючить при сохранении любых изменений в них.
а почему вы не используете встроенный функционал grafana
https://grafana.com/tutorials/provision-dashboards-and-data-sources/
что позволит вам все хранить в git и от туда тащить ?
вы описываете все dashboards, contactPoints, datasources и можете не париться по поводу бэкапов учитывая что у вас все в кубере.
Простите, а чего ради?
Это же на сколько должно не нравиться жать кнопки на мышки, что увеличение количества выполняемых действий х5 для одного изменения приносит удовольствие.
Про удовольствие мы поняли, но это же еще должно быть быстрее быть, чем в GUI. Судя по описанной схеме, вы только увеличили время выполнения действий. Зато без гуя.
Про работу в команде уже до меня написали.
В общем какая то работа ради работы.
Возможно так и есть после того как скинули информацию, что можно средствами Grafana импортировать не только дашборды, но еще и другие сущности. Ранее я об этом не знал и конечно это выглядит намного удобнее и лучше, чем использование terraform
Всем спасибо за фидбек!
В конечном итоге избавился от Terraform, так его использование для Grafana только усложняет жизнь.
Первое что сделал - подключил PostgreSQL для хранения всех сущностей. Настроил dev окружение, вытащил дамп, применил для продовской, изменил некоторые моменты и готово! Теперь можно не переживать про хранение дашбордов и прочих сущностей, так как на базах данных производятся ежедневные бэкапы.
Мой опыт перевода Grafana под управление Terraform или что делать если надоело тыкать на кнопки в GUI