Grafana is a widely used tool for monitoring applications and infrastructures. In addition to the visualization of metrics in dashboards, it also offers functions for alerting.
We have been working very successfully with Grafana as a monitoring solution in our customer projects for many years. However, people often underestimate how much effort goes into creating invested in creating customized content such as dashboards and alerts.
We have started an open source project in GitHub with the Grafana Content Manager, with which the development and backup of Grafana content such as dashboards, Unified Alerting but also data sources is supported.
You can find the project at github.com/yotron/grafana-content-manager
You only notice the high effort when you lose it
The high effort invested in monitoring is often only noticed after a loss of Grafana content during recovery, especially if backups of the content are missing.
Hardly any support for the development of dashboards
The development of dashboards and alerts can be seen as a continuous process during the development and operation of an application or infrastructure. This can also occur as part of a normal development process on a development environment with subsequent migration to a productive environment. Here you realize very quickly that Grafana does not support this adequately and requires a lot of manual customization.
Weak points with Grafana
These problems are clearly weak points that can only ever be solved with Grafana as a supplement.
- There is no out-of-the-box Grafana-native tool that performs the backup of content, which takes effect in the event of a total Grafana disaster and allows recovery.
- There is no out-of-the-box functionality in Grafana to quickly and easily migrate dashboards from one instance of Grafana to another instance of Grafana.
With a frequently observed separation of instances between development and production, the development process is therefore very cumbersome.
Solution Grafana-Content-Manager
With the Grafana-Content-Manager we have started an OpenSource project in GitHub to eliminate these weaknesses.
With this project,
- dashboards, unified alerting and data sources in Grafana’s native json format can be automatically backed up in a Git. From there, the content can be restored for a point-in-time recovery or in the event of a total loss at the touch of a button.
- dashboards can be migrated from one Grafana instance to another Grafana instance at the touch of a button.
The aim is to ensure that a recovery can always be used immediately, i.e. the restored data sources are also connected in the dashboards, so that the contents of the dashboards can be visualized immediately without manual adjustment.
The only manual adjustments are passwords or other secrets in the data sources, which are not saved in a backup via Git and therefore always have to be added manually.
Git also gives you complete transparency in the contents of the backup. You always see all the parts in the backup and automatically receive a versioning of the changes in the dashboards, alerts, etc..