grafana-dashboard — Claude Code skill: build Grafana dashboards
Lets your agent write Grafana dashboards: panels, template variables, alerts and provisioning. Handy when you need monitoring up before the next deploy.
npx skills add aj-geddes/useful-ai-prompts --skill grafana-dashboard -a claude-codeWhat grafana-dashboard does
The skill spells out the JSON shape of a Grafana dashboard: title, tags, refresh interval, panel list and templating variables. Variables come in two flavours here — a datasource picker and a query such as label_values(requests_total, service) — so one board can switch between services without editing JSON by hand.
It ships with reference guides under references/: dashboard JSON, provisioning configuration, alert configuration, the Grafana API client and a Docker Compose setup. The agent reads the relevant file instead of improvising a config from memory.
A DO/DON'T section is blunt about the usual mistakes: too many panels, refresh set too aggressively, missing datasource wiring, default passwords left in place. Note that the examples assume Prometheus as the datasource — if yours isn't configured yet, start there, because the templating queries and panels have nothing to bind to otherwise.
What it helps with
- generate dashboard JSON with panels and variables
- wire up dashboard provisioning from a config file
- define alerts with runbook links
- run Grafana and Prometheus locally via Docker Compose
- call the Grafana API from a script
Example prompts for the agent
- build a Grafana dashboard for service metrics with a service variable and 30s refresh
- add an error-rate alert to this dashboard and link the runbook
- set up Grafana dashboard provisioning in docker-compose
How to install grafana-dashboard
1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill grafana-dashboard -a claude-code2Manually: put the files in place
~/.claude/skills/grafana-dashboard/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/grafana-dashboard/
1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill grafana-dashboard -a codex2Manually: put the files in place
.agents/skills/grafana-dashboard/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill grafana-dashboard -a cursor2Manually: put the files in place
.cursor/skills/grafana-dashboard/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install aj-geddes/useful-ai-prompts grafana-dashboard2Manually: put the files in place
.github/skills/grafana-dashboard/SKILL.md1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill grafana-dashboard -a gemini-cli2Platform CLI
gemini skills install https://github.com/aj-geddes/useful-ai-prompts --path skills/grafana-dashboardManually: put the files in place
.devin/skills/grafana-dashboard/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill grafana-dashboard -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about grafana-dashboard
How do I install grafana-dashboard in Claude?
Run npx skills add aj-geddes/useful-ai-prompts --skill grafana-dashboard -a claude-code. The skill lands in ~/.claude/skills/grafana-dashboard/SKILL.md.
What does grafana-dashboard do?
It gives the agent reference material on dashboard JSON, provisioning, alerts and the Grafana API, so monitoring config gets built from documented patterns rather than guesswork.
What do I need before using it?
A configured datasource in Grafana — the examples use Prometheus. Without one, the template queries and panels have nothing to query.
Source text
SKILL.md · MIT
---
name: grafana-dashboard
description: >
Create professional Grafana dashboards with visualizations, templating, and
alerts. Use when building monitoring dashboards, creating data visualizations,
or setting up operational insights.
---
# Grafana Dashboard
## Table of Contents
- [Overview](#overview)
- [When to Use](#when-to-use)
- [Quick Start](#quick-start)
- [Reference Guides](#reference-guides)
- [Best Practices](#best-practices)
## Overview
Design and implement comprehensive Grafana dashboards with multiple visualization types, variables, and drill-down capabilities for operational monitoring.
## When to Use
- Creating monitoring dashboards
- Building operational insights
- Visualizing time-series data
- Creating drill-down dashboards
- Sharing metrics with stakeholders
## Quick Start
Minimal working example:
```json
{
"dashboard": {
"title": "Application Performance",
"description": "Real-time application metrics",
"tags": ["production", "performance"],
"timezone": "UTC",
"refresh": "30s",
"templating": {
"list": [
{
"name": "datasource",
"type": "datasource",
"datasource": "prometheus"
},
{
"name": "service",
"type": "query",
"datasource": "prometheus",
"query": "label_values(requests_total, service)"
}
]
},
"panels": [
{
"id": 1,
// ... (see reference guides for full implementation)
```
## Reference Guides
Detailed implementations in the `references/` directory:
| Guide | Contents |
|---|---|
| [Grafana Dashboard JSON](references/grafana-dashboard-json.md) | Grafana Dashboard JSON |
| [Grafana Provisioning Configuration](references/grafana-provisioning-configuration.md) | Grafana Provisioning Configuration |
| [Grafana Alert Configuration](references/grafana-alert-configuration.md) | Grafana Alert Configuration |
| [Grafana API Client](references/grafana-api-client.md) | Grafana API Client |
| [Docker Compose Setup](references/docker-compose-setup.md) | Docker Compose Setup |
## Best Practices
### ✅ DO
- Use meaningful dashboard titles
- Add documentation panels
- Implement row-based organization
- Use variables for flexibility
- Set appropriate refresh intervals
- Include runbook links in alerts
- Test alerts before deploying
- Use consistent color schemes
- Version control dashboard JSON
### ❌ DON'T
- Overload dashboards with too many panels
- Mix different time ranges without justification
- Create without runbooks
- Ignore alert noise
- Use inconsistent metric naming
- Set refresh too frequently
- Forget to configure datasources
- Leave default passwords
© aj-geddes · MIT · aj-geddes/useful-ai-prompts