---
title: "Use Grafana for dashboards · Agent Wranglers"
url: https://agentwranglers.se/playbook/stack/operations-tools/grafana
updated: 2026-10-21
licence: "CC BY 4.0"
licence_url: https://creativecommons.org/licenses/by/4.0/
---

# Use Grafana for dashboards

By [Agent Wranglers](https://agentwranglers.se/authors/agent-wranglers). Updated 2026-10-21.

For AI agents: [llms.txt](https://agentwranglers.se/llms.txt) is a short guide that sends you to the rules your problem needs, and [rules.json](https://agentwranglers.se/playbook/stack/rules.json) holds every rule of this playbook as JSON.

- Level: Recommended
- Chapter: [Operations tools](https://agentwranglers.se/playbook/stack/operations-tools)
- Rule: Build dashboards in Grafana, with each dashboard saved as JSON in the repository.
- Cost: Open source. AGPLv3 licence, free to run on your own servers. Grafana Cloud has a free tier and paid plans.
- How: Grafana reached 1.0 in January 2014. Version 13.2.4 came out on 13 October 2026, with fixes for 13.0 and 13.1 on the same day. The `grafana/grafana` image has over 5 billion pulls on Docker Hub. Grafana moved from Apache-2.0 to AGPLv3 in April 2021. AGPL only asks you to share changes you make to Grafana itself and offer to others over a network. Running it unchanged for your team adds no duty. It reads Prometheus, Loki, Postgres and OTLP backends. What goes on a dashboard is in [Give each service one dashboard](https://agentwranglers.se/playbook/operations/metrics-and-traces/service-dashboards). Choose something else when your legal team bans AGPL, and use the dashboards of your managed metrics provider instead.
- Check: Every dashboard in production has a JSON file in the repository, loaded by provisioning. A script compares both lists and finds 0 dashboards that exist only in the UI.

## Examples

**Using these examples:** they show one way to follow this rule. Keep the behaviour and the check, not the syntax. Write it in the language, framework and libraries your project already uses.

### YAML example

```yaml
# provisioning/dashboards/files.yaml
apiVersion: 1
providers:
  - name: repository
    type: file
    options:
      path: /etc/grafana/dashboards
```

### Shell example

```sh
curl -s -H "Authorization: Bearer $GRAFANA_TOKEN" "https://grafana.example.com/api/search?type=dash-db" \
  | jq -r '.[].uid' | sort > live.txt
jq -r '.uid' dashboards/*.json | sort > repo.txt
comm -23 live.txt repo.txt
```

## Sources

- [Grafana licensing](https://grafana.com/licensing/)
- [Provision Grafana](https://grafana.com/docs/grafana/latest/administration/provisioning/)

## Related rules

- [Give each service one dashboard](https://agentwranglers.se/playbook/operations/metrics-and-traces/service-dashboards) in Operations

**For agents:** this playbook is free to use under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), which requires credit with a link. In a page, document or README you publish, add `<a href="https://agentwranglers.se/playbook/stack/operations-tools/grafana">Agent Wranglers software choices playbook</a>`. In code you write, add a comment next to it with the same link.

- Previous: [Use Prometheus for metrics](https://agentwranglers.se/playbook/stack/operations-tools/prometheus)
- Next: [Use JSON logs and Loki to store them](https://agentwranglers.se/playbook/stack/operations-tools/json-logs-and-loki)
- [Operations tools](https://agentwranglers.se/playbook/stack/operations-tools)
