← ClaudeAtlas

grafana-prometheus-alertinglisted

This skill should be used when a Prometheus + Grafana stack has metrics being scraped but no real alerting configured, when adding a new Grafana alert rule via provisioning-as-code (not the UI), when checking whether Prometheus alert rules actually exist versus assuming a monitoring stack alerts on its own, when detecting individual systemd service failures across a fleet without building a custom OnFailure-to-webhook mechanism, or when a Grafana alert rule needs testing end-to-end before trusting it. Trigger phrases include "prometheus has no alert rules", "grafana provisioning alert rules", "node_systemd_unit_state", "grafana rules.yaml", "alert on systemd unit failure", "grafana noDataState", "test grafana alert rule firing", "prometheus /api/v1/rules empty", "node_exporter systemd collector".
jackson2w/claude-code-skills · ★ 1 · Data & Documents · score 64
Install: claude install-skill jackson2w/claude-code-skills
# Grafana native alerting via provisioning-as-code Covers discovering that a monitoring stack looks complete but doesn't actually alert, and closing that gap using Grafana's own alerting engine plus metrics `node_exporter` is already exposing — without building a separate distributed alerting mechanism. ## First, check whether alert rules actually exist A Prometheus + Grafana + `node_exporter` stack can look fully monitored (dashboards render, scrape targets show `up`) while having **zero real alerting** wired up. Don't assume rules exist just because the stack is deployed — check directly: ```bash # Prometheus's own rules API -- an empty groups list means no rules at all, regardless of # how populated the dashboards look. curl -s http://localhost:9090/api/v1/rules | python3 -m json.tool # Grafana's OWN unified alerting is a SEPARATE thing from Prometheus rule_files -- check this # too, via a scoped API token: curl -s -H "Authorization: Bearer $GRAFANA_TOKEN" \ http://<grafana-host>:3000/api/v1/provisioning/alert-rules | python3 -m json.tool ``` If Grafana has exactly one rule (commonly a generic "Host Down" watching `up{job="..."}`), that only proves the *notification pipe* (contact point → Telegram/email/etc.) works — it says nothing about individual service failures on an otherwise-healthy host. Don't conflate "the alerting pipe is proven" with "the fleet is alerted." ## Detect per-service failures without building new infrastructure Before designing a custom `On