Jsonnet library for generating Grafana dashboards.
The code in this repository should be considered experimental. Documentation is only available alongside the code. It comes with no support, but we are keen to receive feedback on the product and suggestions on how to improve it, though we cannot commit to resolution of any particular issue. No SLAs are available. It is not meant to be used in production environments, and the risks are unknown/high.
Grafana Labs defines experimental features as follows:
Projects and features in the Experimental stage are supported only by the Engineering teams; on-call support is not available. Documentation is either limited or not provided outside of code comments. No SLA is provided.
Experimental projects or features are primarily intended for open source engineers who want to participate in ensuring systems stability, and to gain consensus and approval for open source governance projects.
Projects and features in the Experimental phase are not meant to be used in production environments, and the risks are unknown/high.
Additional information can be found in Release life cycle for Grafana Labs.
This library depends on JSON Schemas generated by Grok, these schemas are generated directly from the Grafana repository to ensure Grafonnet can keep up with Grafana development.
Grafonnet is the spiritual successor of grafonnet-lib. As grafonnet-lib was manually written, it had a hard time to keep up with Grafana development, this resulted in it being under-maintained. Besides that, it also came with a performance penalty in jsonnet as it used the builder pattern, although visually appealing it becomes very slow for environments that need to manage many dashboards.
Grafonnet uses the Jsonnet programming language.
NOTE: There is a significant performance issue with the C implementation of Jsonnet. You are strongly recommended to use the newer go-jsonnet Jsonnet implementation. This is also the implementation recommended by the Jsonnet developers themselves.
The library can be installed with jsonnet-bundler.
To add grafonnet to a jsonnet project:
jb install github.com/grafana/grafonnet/gen/grafonnet-latest@main
// dashboard.jsonnet
local grafonnet = import 'github.com/grafana/grafonnet/gen/grafonnet-latest/main.libsonnet';
grafonnet.dashboard.new('My Dashboard')
jsonnet -J vendor dashboard.jsonnet