DOCS

Set up Prometheus Alertmanager ingestion

Forward Prometheus Alertmanager alerts into HowlOps as alerts and incidents using Alertmanager's native OpsGenie receiver pointed at HowlOps.

What you will configure

  • Generate a Prometheus / Alertmanager endpoint in the HowlOps Integration Hub (gives you a token)
  • Point Alertmanager's built-in OpsGenie receiver (opsgenie_configs) at HowlOps
  • Verify a real alert flows through to HowlOps

Time: ~5 minutes · Requires: a running Prometheus Alertmanager. Works on any plan, including Free On-call — external alert ingestion is free.

Step 1 — Generate the endpoint in HowlOps

  1. In HowlOps, open Integrations in the sidebar (the Integration Hub).
  2. Under Bring alerts into HowlOps, click the Prometheus / Alertmanager source card.
  3. Click Generate endpoint.
  4. Copy the Token shown in the drawer — it starts with howl_. This is your Alertmanager api_key.

Step 2 — Add the HowlOps receiver to alertmanager.yml

Add an opsgenie_configs receiver whose api_url points at HowlOps and whose api_key is the token from Step 1:

yaml
receivers:
  - name: howlops
    opsgenie_configs:
      - api_url: https://api.howlops.com/api/v1/prometheus/
        api_key: howl_YOUR_TOKEN_HERE
        send_resolved: true
        # Map your Prometheus `severity` label to an OpsGenie priority so HowlOps
        # gets the right incident severity. Without this, everything arrives as P3.
        priority: '{{ if eq .CommonLabels.severity "critical" }}P1{{ else if eq .CommonLabels.severity "warning" }}P3{{ else }}P5{{ end }}'
  • api_url must end with a trailing slash — Alertmanager appends v2/alerts to it.
  • send_resolved: true lets HowlOps auto-close the alert when it clears (matched by the Alertmanager alias).
  • The priority template is optional but recommended; see Severity mapping below.

Alternative: deliver via webhook_configs

Prefer Alertmanager's generic webhook? HowlOps exposes a native webhook receiver too. Generate an Alertmanager token in Integrations (the Alertmanager tokens section), then add a webhook_configs receiver that authenticates with it as a Bearer token:

yaml
receivers:
  - name: howlops
    webhook_configs:
      - url: https://api.howlops.com/api/v1/webhook/alertmanager
        send_resolved: true
        http_config:
          authorization:
            type: Bearer
            credentials: howl_YOUR_TOKEN_HERE
  • This endpoint takes Alertmanager's standard webhook JSON, so there is no api_url trailing-slash rule here.
  • The credential is a separate Alertmanager token (sent as Bearer), not the OpsGenie api_key from Step 1. Generate it in the Alertmanager tokens section of Integrations.
  • Severity is read from each alert's own severity label (critical / warning / info). The OpsGenie priority template shown above does not apply to this path.

Pick one receiver, not both, or a single alert would arrive twice.

Step 3 — Route alerts to HowlOps

yaml
route:
  receiver: howlops
  group_by: ['alertname']
  group_wait: 10s
  group_interval: 30s
  repeat_interval: 4h

Reload Alertmanager on your Alertmanager host (this example assumes the command runs on that host itself — swap in the real hostname if it doesn't):

bash
curl -X POST http://localhost:9093/-/reload

Step 4 — Test it

Fire a test alert straight into the Alertmanager API on your Alertmanager host:

bash
curl -X POST http://localhost:9093/api/v2/alerts \
  -H 'Content-Type: application/json' \
  -d '[{"labels":{"alertname":"HowlOpsTest","severity":"critical","instance":"web-01"},
        "annotations":{"summary":"Test alert from the HowlOps setup guide"},
        "startsAt":"2026-07-07T10:30:00Z"}]'

Within a few seconds the alert appears under Alerts in HowlOps. Because it carries severity: critical, the priority template maps it to P1 → critical, and a critical alert is promoted to an Incident.

Severity mapping

HowlOps reads the OpsGenie priority that Alertmanager sends and maps it to an incident severity:

Priority (from opsgenie_configs)HowlOps severity
P1, P2critical (pages on-call)
P3warning
P4, P5info
(none set)warning (defaults to P3)

Priority is controlled entirely by the priority field in your receiver. If you omit it, every alert arrives as P3 (warning). Use the template shown in Step 2 to derive the priority from your alert-rule labels (for example, severity: criticalP1).

Troubleshooting

  • No alert appears — confirm Alertmanager can reach api.howlops.com, that api_url ends with a trailing slash, and that the token is correct (click Regenerate token if unsure). Check the Alertmanager logs for a 401 (bad token) or 404 (wrong URL).
  • Everything shows as warning — you haven't set a priority in the receiver, so all alerts default to P3. Add the priority template from Step 2.
  • Alert never resolves — make sure send_resolved: true is set; HowlOps matches the resolve to the open alert by the Alertmanager alias.

See also

Was this page helpful?