Compact representation of Grafana dashboards

I found the dashboard JSON format very verbose and hard to maintain. In particular, it is very redundant, repeat each property for each panel, row, etc. This is fine if one is doing all the updates from the UI, but hard if you want to keep the dashboard in Git as I do.

An ideal representation will:

  • be human readable, using JSON, YAML, S-expression or similar
  • include only the properties which are not the default for each panel, row, and dashboard
  • easily convert, using JS, from the compact to full representation and back

I assume I’m not the only one who had this issue. Does anyone know of a solution for this?
Maybe a templating tool like Mustache can help?

checkout https://github.com/grafana/grafonnet-lib

Thank I will check it out
As far as I can see it does not satisfy my 3td bullet of converting dashboard to the compact format, but maybe its not a must

If anyone interesting, a colleague of mine created a compact representation for Grafana dashboard
We are already using it for our dashboards: