Grafana
Infra alerts - CPU, error rate, latency thresholds.

Grafana's unified alerting (the modern "Grafana Alerting" replacing the old per-panel alerts) sends notifications through Contact Points. Webhook is one of the built-in contact point types. Chirp's inbound normalizer recognizes Grafana's payload format and pulls the alert name, summary, and severity out for a push notification.
Most useful for infra alerts: CPU thresholds, error rate spikes, latency SLO violations, missing-data alarms. Pair with Grafana's notification policies to route only paging-worthy alerts to Chirp (and let the lower-severity stuff go to Slack).
Prerequisites
- A Grafana instance (Cloud or self-hosted) with Alerting enabled.
- A Chirp inspector / webhook URL.
Setup
- 1
Open Contact Points
Grafana → Alerting → Contact Points → "New contact point". (Self-hosted: same path; older versions had this under Alerting → Notifications.)
- 2
Configure the webhook
Pick "Webhook" as the Integration type. URL is your Chirp inspector. Leave HTTP Method as POST. No auth required at the contact-point level - Chirp's inspector key is the auth.
shellName: Chirp Integration: Webhook URL: https://api.chirpapp.dev/v1/webhooks/inbound?key=YOUR_KEY HTTP Method: POST Max alerts: 10 # cap per webhook to avoid spamming Disable resolved messages: off # so card flips back when alert clears - 3
Test the contact point
Grafana has a "Test" button on the contact point page. Click it - sends a synthetic alert to Chirp's inspector. You should get a push within seconds. If you don't, check the inspector's recent-events log.
- 4
Route alerts to the contact point
Alerting → Notification Policies. Either set the contact point as the default route, or create a sub-policy with label-matchers (e.g.
severity = critical) that routes to Chirp. Default-routing every alert is loud - start with a label-match.
What you’ll see
Notification: "Grafana · <alert name>" - title is the alert rule name, body is the summary annotation + the firing instance count. Severity-tinted. Resolves fire a follow-up notification ("Resolved") when Grafana sees the underlying metric recover.
Troubleshooting
- Test webhook works but real alerts don't fire.
- Notification policy isn't routing to the contact point. Alerting → Notification Policies → check the routing tree - your alert's labels must match a route that ends at the Chirp contact point.
- Card body is empty.
- Grafana's payload only includes annotations you've defined on the alert rule. If your rule has no
summaryordescriptionannotation, the body is empty. Add at least a summary to every alert rule. - Resolves don't fire.
- Confirm "Disable resolved messages" is unticked on the contact point. Grafana sends resolves by default but the toggle silently suppresses them.