No description
- TypeScript 100%
|
|
||
|---|---|---|
| .claude/skills/grafana | ||
| extensions/models | ||
| .gitignore | ||
| .swamp.yaml | ||
| CLAUDE.md | ||
| manifest.yaml | ||
| README.md | ||
@keeb/grafana
Swamp extension for Grafana dashboard and alert management via the Grafana HTTP API.
Models
grafana/instance
Manage dashboards, alert rules, contact points, and notification policies on a Grafana instance.
| Method | Description |
|---|---|
discover |
List all dashboards |
pushDashboard |
Create or update a dashboard from a JSON file |
exportDashboard |
Export a dashboard to JSON |
configureContactPoint |
Configure a notification contact point (e.g. Discord webhook) |
configureNotificationPolicy |
Set the notification routing policy |
pushAlertRule |
Create or update an alert rule |
createAnnotation |
Create a dashboard annotation (used to mark deploys, server events) |
Workflows
None — dashboard and alert deployment workflows are defined in the consuming project.
Dependencies
- @keeb/ssh — SSH helpers (
lib/ssh.ts)
Install
swamp extension pull @keeb/grafana
Example
Push a dashboard JSON file and create a deploy annotation:
models:
- name: grafana
type: "@keeb/grafana/instance"
globalArguments:
grafanaUrl: "http://grafana.local:3000"
apiKey: "${vault.grafana.apiKey}"
jobs:
- name: push-and-annotate
steps:
- model: grafana
method: pushDashboard
inputs:
dashboardFile: "dashboards/hosts.json"
- model: grafana
method: createAnnotation
inputs:
text: "deploy ${env.GIT_SHA}"
tags: '["deploy"]'
License
MIT