# Grafana and Alertmanager alerts on your iPhone

> Send Grafana alerting and Prometheus Alertmanager notifications to your iPhone as a push per alert rule, with a recovery when every instance resolves.

Source: https://honk-honk.app/guides/grafana-alertmanager-alerts

Point a Grafana contact point or an Alertmanager receiver at Honk, and firing alerts reach your iPhone as a push, at the level of their `severity` label. When the alert resolves, Honk closes it with a recovery. It takes one webhook URL, and the same connection works for Grafana alerting and for Prometheus Alertmanager, which send the same format.

Alertmanager groups alerts before it sends them, and Honk keeps that grouping. The instances of one alert rule in a notification, one per host, disk or service, arrive as one message with a line for each, so a rule that fires on ten servers at once is one push, not ten.

## Before you start

- A Honk account. Honk is invite-only for now: [request access](https://honk-honk.app/request-access).
- A project for your infrastructure, in a workspace where you’re an owner or admin.
- Grafana with alerting, or Prometheus Alertmanager, that can reach honk-honk.app over HTTPS.

## 1. Create the connection in Honk

In the Honk web app, open the project, go to **Connections** and click **Connect a service**. Choose **Grafana**, which covers Alertmanager too, and click **Connect**. Honk shows the connection’s **Webhook URL**, which starts with `https://honk-honk.app/v1/hooks/grafana/`.

A secret is optional. Without one, the URL alone lets alerts in, so keep it private. To add one, click **Generate** under **Signing secret**, copy it, and click **Save secret**: from then on, Honk accepts only requests that send it as a bearer token.

## 2. Add a contact point in Grafana

In Grafana, open **Alerting ▸ Contact points** and click **+ Add contact point**. Give it a name, choose **Webhook** as the **Integration**, and paste the URL from Honk into **URL**.

If you saved a secret, open **Optional Webhook settings** and put it in the credentials of the Authorization header, with the scheme left at Bearer. Leave **Disable resolved message** off, or problems never close. Save the contact point.

Then send alerts to it under **Notification policies**: as the default contact point, or in a policy for the labels you choose.

## 3. Send a test

On the contact point, click **Test**. Grafana sends a sample firing alert, and a Loud honk arrives within seconds. The sample never resolves, so delete it from the inbox afterwards. The connection in Honk shows the time of the last delivery, or the last error, such as a missing secret.

_Connected services in a Honk project: Stripe, Shopify, Uptime Kuma and Sentry, each with the time of its last delivery and whether its secret is saved._

## With Prometheus Alertmanager

Add a webhook receiver with the URL from Honk, and route alerts to it:

```yaml
# alertmanager.yml
route:
  receiver: honk

receivers:
  - name: honk
    webhook_configs:
      # the Webhook URL of the Grafana connection in Honk
      - url: "https://honk-honk.app/v1/hooks/grafana/…"
        send_resolved: true # the default; without it, problems never close
        # only if you saved a secret on the connection
        http_config:
          authorization:
            credentials: "the secret saved in Honk"
```

Leave out `http_config` if you didn’t save a secret. Reload Alertmanager, and the next notification arrives in Honk.

## What arrives

- **Firing:** a problem, titled with the alerts’ shared `summary`, or the rule name. The message has one line per instance, from its `description`, up to ten, then how many more.
- **The level** comes from the `severity` label, or `priority`: critical, p1 or page is a Blast; error, high or p2 a Long honk; warning, medium or p3 a Loud honk; info, low or p4 a Light honk. Without one of these labels, it’s a Loud honk. When instances differ, the highest level wins.
- **Resolved:** once every instance of the rule has resolved, a recovery, “Resolved: …”, closes the problem. While one instance still fires, it stays open.
- **Repeats:** when Alertmanager sends the same alerts again in the same state, Honk recognizes them and adds nothing, for up to 24 hours. A new instance that starts firing arrives as an update in the same group.
- **Links:** the message links to the alert’s source, or else its dashboard or panel, but only over HTTPS. An internal `http://` link is left out, and the alert still arrives.

The labels all instances share are kept with the message, so you can see the job or cluster without opening Grafana. If you’ve turned on Live Activities in [Honk for iPhone](https://honk-honk.app/iphone), a Long honk or Blast can stay on your Lock Screen until it recovers.

## Plans and limits

Each connection counts toward your workspace’s plan: Free includes 2, Pro 20 and Team 100. Messages from Grafana count toward the plan’s daily message and push limits like any others; [pricing](https://honk-honk.app/pricing) lists them.

For application errors in the same project, see the [Sentry guide](https://honk-honk.app/guides/sentry-alerts-iphone). For sites and ports checked from outside, see the [Uptime Kuma guide](https://honk-honk.app/guides/uptime-kuma-notifications); for jobs that should report in, the [cron guide](https://honk-honk.app/guides/cron-job-push-notifications). [Stop alert fatigue](https://honk-honk.app/guides/stop-alert-fatigue) explains how Honk turns a noisy hour into a few pushes.
