finds.dev← search

// the find

weaveworks/grafanalib

★ 1,966 · Python · Apache-2.0 · updated Dec 2025

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.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →