// the find
weaveworks/grafanalib
Python library for building Grafana dashboards
grafanalib lets you define Grafana dashboards as Python code instead of clicking through the UI or hand-editing JSON. The pitch is dashboard-as-code: version control, reuse, and programmatic generation. It's for teams who already have Grafana and want to stop managing dashboard JSON by hand.
1. Covers a real pain point — Grafana's JSON export is not meant to be hand-edited, and this gives you actual Python objects you can factor and reuse. 2. Datasource-specific modules (Prometheus, CloudWatch, Elasticsearch, InfluxDB, etc.) mean you're not writing raw panel JSON for common targets. 3. The generate-dashboard CLI is dead simple — pipe the output to a file or straight into Grafana's API. 4. Tests against actual examples, not just unit tests of object construction, which catches JSON schema regressions.
1. The README openly says both maintainers 'have become somewhat occupied otherwise' and there's no roadmap — this is slow-moving abandonware at 2k stars, and Grafana moves fast enough that the library regularly lags behind new panel types and API changes. 2. The abstraction layer is thin and leaky: most panel configs still require you to know what the raw JSON looks like, so you end up reading Grafana source alongside this library anyway. 3. No Grafana 10/11 native panel types — things like the new stat panels, canvas, or trend panels are absent or incomplete. 4. Python 3.11 is the stated upper bound in the README, which is already two releases behind.