From grafana-app-sdk
Configures Grafana OSS including provisioning dashboards from YAML, setting up data sources (Prometheus, Loki, Tempo, Pyroscope), building dashboard JSON with template variables, managing users, roles, service account tokens, annotations, plugins, and server config via provisioning API.
How this skill is triggered — by the user, by Claude, or both
Slash command
/grafana-app-sdk:grafana-ossThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **Docs**: https://grafana.com/docs/grafana/latest.md
/var/lib/grafana/dashboards/provisioning/dashboards/default.yaml (see § Dashboard provisioning below)curl https://grafana.example.com/api/dashboards/uid/<uid> \
-H "Authorization: Bearer <token>" | jq '.dashboard.title'
Returns the title → success. 404 → provisioning didn't pick it up; check Grafana server logs (journalctl -u grafana-server | grep -i provisioning) for parse errors.provisioning/datasources/datasources.yaml (see § Data source provisioning below)curl https://grafana.example.com/api/datasources/uid/<uid>/health \
-H "Authorization: Bearer <token>"
# { "status": "OK", "message": "..." } → working
# { "status": "ERROR", ... } → URL unreachable or auth misconfigured
POST /api/serviceaccounts (full API in references/api.md § Users + service accounts)POST /api/serviceaccounts/{id}/tokenscurl https://grafana.example.com/api/org \
-H "Authorization: Bearer <new-token>"
# 200 + org JSON → token + role assignment work
# 401 → token wrong; 403 → role wrong
# provisioning/dashboards/default.yaml
apiVersion: 1
providers:
- name: default
folder: MyFolder
type: file
disableDeletion: false
updateIntervalSeconds: 30
options:
path: /var/lib/grafana/dashboards
foldersFromFilesStructure: true
For the dashboard JSON shape itself (panels, queries, template variables), see references/dashboard-json.md.
# provisioning/datasources/datasources.yaml
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
access: proxy
url: http://prometheus:9090
isDefault: true
jsonData:
timeInterval: 15s
httpMethod: POST
- name: Loki
type: loki
access: proxy
url: http://loki:3100
- name: Tempo
type: tempo
access: proxy
url: http://tempo:3200
jsonData:
tracesToLogsV2:
datasourceUid: loki_uid
tags: [{ key: "service.name", value: "app" }]
serviceMap:
datasourceUid: prometheus_uid
nodeGraph:
enabled: true
- name: Pyroscope
type: grafana-pyroscope-datasource
url: http://pyroscope:4040
| Role | Permissions |
|---|---|
| Viewer | Read dashboards, alerts |
| Editor | Create/edit dashboards, alerts |
| Admin | Manage data sources, users, plugins |
| GrafanaAdmin | Server-wide admin (superuser) |
Service-account provisioning:
# provisioning/access-control/service_accounts.yaml
apiVersion: 1
serviceAccounts:
- name: ci-reader
orgId: 1
role: Viewer
tokens:
- name: ci-token
# expires: optional ISO 8601 timestamp; omit for no-expiry tokens
(Custom RBAC roles with fine-grained permissions are Enterprise / Cloud only — see the grafana-cloud/admin skill if you need those.)
# provisioning/plugins/plugins.yaml
apiVersion: 1
apps:
- type: grafana-pyroscope-app
disabled: false
jsonData:
backendUrl: http://pyroscope:4040
After restart, verify via GET /api/plugins/<plugin-id>/health.
references/dashboard-json.md — full dashboard JSON model + template variables + common problems (uid uniqueness, gridPos arithmetic, datasource uid matching)references/panel-types.md — panel-type table + decision guide for picking the right onereferences/api.md — full Grafana OSS API reference (dashboards, data sources, users, service accounts, annotations) with verification curls and common failure modesreferences/config.md — grafana.ini server / database / SMTP / auth / security / feature-toggle config + restart-required issuesnpx claudepluginhub grafana/skills --plugin grafana-app-sdkCreates production-ready Grafana dashboards with reusable panels, template variables, and provisioning for version-controlled deployment of Prometheus, Loki, and other data source metrics.
Creates and manages production-ready Grafana dashboards for monitoring applications, infrastructure, SLOs, and KPIs using Prometheus metrics and RED/USE methods.
Create, modify, and organise Grafana dashboards including panels, variables, transformations, and alerting.