LandfallDocs
Triggering integrations · Grafana

Opening a war room from a Grafana alert rule

This page is about opening incidents automatically the moment a Grafana Unified Alerting rule fires. It is not about reading telemetry. If you want the investigator agent to query through Grafana once an incident already exists, see Grafana instead. The two are independent, and most teams eventually set up both.

Grafana
Unified Alerting rule fires
Alertmanager
alert ingestion API
Landfall
opens/attaches an incident

How it works

Grafana's own Unified Alerting has a contact point type it labels "Alertmanager." Despite the name and despite Grafana's UI grouping it alongside webhook shaped integrations, the real wire behavior is that Grafana pushes fired alerts directly into Alertmanager's own alert ingestion API (POST /api/v2/alerts), the identical entry point Prometheus and Loki's ruler already use. It is not a webhook call to a URL Landfall controls, and it is not a new trigger path into Landfall. Setting up that Alertmanager and issuing the shared secret its own webhook uses toward Landfall is common to every rule engine, so it lives on its own page: see the shared Alertmanager webhook. What's specific to Grafana is the contact point below, which points at that same Alertmanager, not at Landfall directly.

Because Grafana pushes into Alertmanager rather than calling Landfall, a Grafana sourced incident carries the exact same Alertmanager provenance badge as a Prometheus or Loki sourced one. The rule's own service and summary labels are what distinguish "this came from Grafana" from the other two engines, not a separate provenance value.

This also means a Grafana alert rule can watch any datasource Grafana has configured, not only Prometheus or Loki, and still open a Landfall incident through this same unchanged pipeline.

What you'll need

  • The shared Alertmanager webhook already set up, per the page linked above.
  • Grafana's Unified Alerting enabled, with at least one alert rule.
Titles must be unique across engines

Alertmanager groups notifications by alert name, and Landfall attaches a repeat notification for the same group to whichever incident that group first opened, with no time bound. Give a Grafana rule a title distinct from every existing Prometheus or Loki rule name. A shared title does not open its own incident. It permanently attaches to the other engine's incident instead, on every future firing.

Configure the contact point and a rule

Add a contact point of Grafana's own prometheus-alertmanager type, pointed at the same Alertmanager the shared setup page configured:

Grafana provisioning, contact point
apiVersion: 1
contactPoints:
  - orgId: 1
    name: landfall-alertmanager
    receivers:
      - uid: landfall-alertmanager-1
        type: prometheus-alertmanager
        settings:
          url: http://alertmanager:9093

Grafana's own default root notification policy groups by grafana_folder and alertname. A provisioned policy replaces that default for the org, so keep both unless you have a stated reason to narrow them:

Grafana provisioning, policy
apiVersion: 1
policies:
  - orgId: 1
    receiver: landfall-alertmanager
    group_by: ['grafana_folder', 'alertname']

Then an alert rule, with service and severity labels set explicitly and a title distinct from any existing Prometheus or Loki rule:

Grafana provisioning, worked example rule
apiVersion: 1
groups:
  - orgId: 1
    name: landfall-application
    folder: Landfall
    interval: 1m
    rules:
      - title: GrafanaCoreApiElevatedErrorRate
        condition: C
        # data: a query against a Grafana datasource, reduced to a single value,
        # then compared against a threshold
        for: 5m
        labels:
          service: core-api
          severity: critical
        annotations:
          summary: 'core-api condition exceeded threshold over 5 minutes (via Grafana Unified Alerting)'

A real result

This is the real result from Landfall's own dev environment. A Grafana Unified Alerting rule watching a log pattern condition fired for real, and Alertmanager delivered the notification exactly as it does for Prometheus and Loki:

Incidents
Landfall's Incidents list showing a GrafanaCoreApiElevatedErrorRate incident with an Alertmanager provenance badge, the core-api entity tag, and a summary referencing Grafana Unified Alerting, opened automatically from a real Grafana alert.

Re-firing the same rule attached to the already open incident rather than opening a duplicate, the same attach behavior every other rule engine gets from the shared groupKey mechanism.

Reference

Rule sourceGrafana's own Unified Alerting, contact point type prometheus-alertmanager
Delivering systemAlertmanager. See the shared webhook page for the endpoint, secret, and field mapping.
Incident provenanceAlertmanager
Rule titleMust be distinct from every existing Prometheus/Loki rule name