
Grafana Dashboards
Spin up production Grafana dashboards with RED/USE panels so you can see API health, infra saturation, and business KPIs in one place.
Overview
Grafana Dashboards is an agent skill most often used in Operate (also Ship, Build) that designs production Grafana layouts for Prometheus metrics, SLO views, and KPI monitoring.
Install
npx skills add https://github.com/wshobson/agents --skill grafana-dashboardsWhat is this skill?
- Three-tier dashboard hierarchy: critical big numbers, key time series, then tables and heatmaps
- RED method panels for services (rate, errors, duration) and USE method for resources
- JSON dashboard scaffolding for API monitoring with tags, refresh, and production-oriented layout
- Covers Prometheus-backed metrics, custom dashboards, infrastructure, and business KPI tracking
- Operational observability interfaces aimed at production—not throwaway dev charts
- 3-tier information hierarchy (big numbers, trends, detailed metrics)
- RED and USE observability frameworks each with 3 dimensions
Adoption & trust: 8.4k installs on skills.sh; 36.5k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You have metrics in Prometheus but no structured dashboard that surfaces critical signals, trends, and drill-down detail in one glance.
Who is it for?
Solo builders running Prometheus who need standard service and infra dashboards before or right after production launch.
Skip if: Teams that only need ad-hoc log tailing with no metrics stack, or orgs standardized on a non-Grafana vendor with no import path.
When should I use this skill?
Building monitoring dashboards, visualizing metrics, or creating operational observability interfaces.
What do I get? / Deliverables
You get a documented RED/USE panel hierarchy and API monitoring dashboard JSON you can import, tune, and extend for ongoing observability.
- Dashboard layout following hierarchy, RED, and USE principles
- API monitoring dashboard JSON scaffold with panels, tags, and refresh settings
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Dashboards are the day-two observability surface solo builders live in after deploy; canonical shelf is operate because that is when metrics are consumed for incidents and SLO review. Monitoring subphase matches real-time visualization and SLO tracking rather than one-off ship security or launch distribution work.
Where it fits
Add an API monitoring dashboard before go-live so launch day has rate, errors, and latency panels ready.
Refine SLO dashboards when error budgets burn during an on-call week.
Layer USE-method resource panels onto node and queue metrics for capacity planning.
Expose business KPI big-number rows on the same Grafana org for growth reviews.
How it compares
Use as a dashboard design playbook layered on Prometheus metrics, not as a log-only debugger or APM substitute.
Common Questions / FAQ
Who is grafana-dashboards for?
Indie and solo developers shipping APIs or SaaS who self-host or use Grafana Cloud and want agent-guided dashboard structure without hiring an SRE.
When should I use grafana-dashboards?
During launch prep to visualize Prometheus metrics, when building SLO dashboards in operate/monitoring, or when extending infra panels in operate/infra after deploy.
Is grafana-dashboards safe to install?
Treat it as documentation and JSON templates only; review the Security Audits panel on this Prism page before trusting any third-party skill in your agent environment.
SKILL.md
READMESKILL.md - Grafana Dashboards
# Grafana Dashboards Create and manage production-ready Grafana dashboards for comprehensive system observability. ## Purpose Design effective Grafana dashboards for monitoring applications, infrastructure, and business metrics. ## When to Use - Visualize Prometheus metrics - Create custom dashboards - Implement SLO dashboards - Monitor infrastructure - Track business KPIs ## Dashboard Design Principles ### 1. Hierarchy of Information ``` ┌─────────────────────────────────────┐ │ Critical Metrics (Big Numbers) │ ├─────────────────────────────────────┤ │ Key Trends (Time Series) │ ├─────────────────────────────────────┤ │ Detailed Metrics (Tables/Heatmaps) │ └─────────────────────────────────────┘ ``` ### 2. RED Method (Services) - **Rate** - Requests per second - **Errors** - Error rate - **Duration** - Latency/response time ### 3. USE Method (Resources) - **Utilization** - % time resource is busy - **Saturation** - Queue length/wait time - **Errors** - Error count ## Dashboard Structure ### API Monitoring Dashboard ```json { "dashboard": { "title": "API Monitoring", "tags": ["api", "production"], "timezone": "browser", "refresh": "30s", "panels": [ { "title": "Request Rate", "type": "graph", "targets": [ { "expr": "sum(rate(http_requests_total[5m])) by (service)", "legendFormat": "{{service}}" } ], "gridPos": { "x": 0, "y": 0, "w": 12, "h": 8 } }, { "title": "Error Rate %", "type": "graph", "targets": [ { "expr": "(sum(rate(http_requests_total{status=~\"5..\"}[5m])) / sum(rate(http_requests_total[5m]))) * 100", "legendFormat": "Error Rate" } ], "alert": { "conditions": [ { "evaluator": { "params": [5], "type": "gt" }, "operator": { "type": "and" }, "query": { "params": ["A", "5m", "now"] }, "type": "query" } ] }, "gridPos": { "x": 12, "y": 0, "w": 12, "h": 8 } }, { "title": "P95 Latency", "type": "graph", "targets": [ { "expr": "histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, service))", "legendFormat": "{{service}}" } ], "gridPos": { "x": 0, "y": 8, "w": 24, "h": 8 } } ] } } ``` **Reference:** See `assets/api-dashboard.json` ## Panel Types ### 1. Stat Panel (Single Value) ```json { "type": "stat", "title": "Total Requests", "targets": [ { "expr": "sum(http_requests_total)" } ], "options": { "reduceOptions": { "values": false, "calcs": ["lastNotNull"] }, "orientation": "auto", "textMode": "auto", "colorMode": "value" }, "fieldConfig": { "defaults": { "thresholds": { "mode": "absolute", "steps": [ { "value": 0, "color": "green" }, { "value": 80, "color": "yellow" }, { "value": 90, "color": "red" } ] } } } } ``` ### 2. Time Series Graph ```json { "type": "graph", "title": "CPU Usage", "targets": [ { "expr": "100 - (avg by (instance) (rate(node_cpu_seconds_total{mode=\"idle\"}[5m])) * 100)" } ], "yaxes": [ { "format": "percent", "max": 100, "min": 0 }, { "format": "short" } ] } ``` ### 3. Table Panel ```json { "type": "table", "title": "Service Status", "targets": [ { "expr": "up", "format": "table", "instant": true } ], "transformations": [ { "id": "or