Prometheus
Monitor alerts from Prometheus and Alertmanager
Triggers
Section titled “Triggers”Actions
Section titled “Actions”Instructions
Section titled “Instructions”Connection
Section titled “Connection”Configure this integration with:
- Prometheus Base URL: URL of your Prometheus server (e.g.,
https://prometheus.example.com) - Alertmanager Base URL (optional): URL of your Alertmanager instance (e.g.,
https://alertmanager.example.com). Required for Silence components. If omitted, the Prometheus Base URL is used. - API Auth:
none,basic, orbearerfor API requests - Webhook Secret (recommended): If set, Alertmanager must send
Authorization: Bearer <token>on webhook requests
Alertmanager Setup (manual)
Section titled “Alertmanager Setup (manual)”The trigger setup panel in SuperPlane shows the generated webhook URL.
Use the On Alert trigger setup instructions in the workflow sidebar for the exact alertmanager.yml snippet.
After editing config, reload Alertmanager (for example POST /-/reload when lifecycle reload is enabled).
On Alert
Section titled “On Alert”The On Alert trigger starts a workflow execution when Alertmanager sends alerts to SuperPlane.
What this trigger does
Section titled “What this trigger does”- Receives Alertmanager webhook payloads
- Optionally validates bearer auth when Webhook Secret is configured
- Emits one event per matching alert as
prometheus.alert - Filters by selected statuses (
firingand/orresolved)
Configuration
Section titled “Configuration”- Statuses: Required list of alert statuses to emit
- Alert Names: Optional exact
alertnamefilters
Alertmanager setup (manual)
Section titled “Alertmanager setup (manual)”When the node is saved, SuperPlane generates a webhook URL shown in the trigger setup panel. Copy that URL into your Alertmanager receiver.
Receiver registration in upstream Alertmanager is config-based (not API-created by SuperPlane). Use the setup instructions shown in the workflow sidebar for the exact alertmanager.yml snippet.
After updating Alertmanager config, reload it (for example POST /-/reload when lifecycle reload is enabled).
Example Data
Section titled “Example Data”{ "data": { "annotations": { "description": "Demo alert from local Prometheus setup", "summary": "SuperPlane test alert is firing" }, "commonAnnotations": { "description": "Demo alert from local Prometheus setup", "summary": "SuperPlane test alert is firing" }, "commonLabels": { "alertname": "SuperplaneTestAlert", "severity": "warning" }, "endsAt": "0001-01-01T00:00:00Z", "externalURL": "http://localhost:9093", "fingerprint": "aac3b474e2c0658c", "generatorURL": "http://fd66aa456472:9090/graph?g0.expr=vector%281%29\u0026g0.tab=1", "groupKey": "{}:{alertname=\"SuperplaneTestAlert\"}", "groupLabels": { "alertname": "SuperplaneTestAlert" }, "labels": { "alertname": "SuperplaneTestAlert", "severity": "warning" }, "receiver": "superplane", "startsAt": "2026-02-12T16:08:39Z", "status": "firing" }, "timestamp": "2026-02-12T16:18:03.362582388Z", "type": "prometheus.alert"}Create Silence
Section titled “Create Silence”The Create Silence component creates a silence in Alertmanager (POST /api/v2/silences) to suppress matching alerts.
Configuration
Section titled “Configuration”- Matchers: Required list of matchers. Each matcher has:
- Name: Label name to match
- Value: Label value to match
- Is Regex: Whether value is a regex pattern (default: false)
- Is Equal: Whether to match equality (true) or inequality (false) (default: true)
- Duration: Required duration string (e.g.
1h,30m,2h30m) - Created By: Required name of who is creating the silence
- Comment: Required reason for the silence
Output
Section titled “Output”Emits one prometheus.silence payload with silence ID, status, matchers, timing, and creator info.
Example Output
Section titled “Example Output”{ "data": { "comment": "Scheduled maintenance window for database migration", "createdBy": "SuperPlane", "endsAt": "2026-02-12T17:30:00Z", "matchers": [ { "isEqual": true, "isRegex": false, "name": "alertname", "value": "HighLatency" }, { "isEqual": true, "isRegex": false, "name": "severity", "value": "critical" } ], "silenceID": "a1b2c3d4-e5f6-4789-a012-3456789abcde", "startsAt": "2026-02-12T16:30:00Z", "status": "active" }, "timestamp": "2026-02-12T16:30:05.123456789Z", "type": "prometheus.silence"}Expire Silence
Section titled “Expire Silence”The Expire Silence component expires an active silence in Alertmanager (DELETE /api/v2/silence/{silenceID}).
Configuration
Section titled “Configuration”- Silence: Required silence to expire. Supports expressions so users can reference
$['Create Silence'].silenceID.
Output
Section titled “Output”Emits one prometheus.silence.expired payload with silence ID and status.
Example Output
Section titled “Example Output”{ "data": { "silenceID": "a1b2c3d4-e5f6-4789-a012-3456789abcde", "status": "expired" }, "timestamp": "2026-02-12T17:45:10.987654321Z", "type": "prometheus.silence.expired"}Get Alert
Section titled “Get Alert”The Get Alert component fetches active alerts from Prometheus (/api/v1/alerts) and returns the first alert that matches.
Configuration
Section titled “Configuration”- Alert Name: Required
labels.alertnamevalue to search for (supports expressions) - State: Optional filter (
any,firing,pending,inactive)
Output
Section titled “Output”Emits one prometheus.alert payload with labels, annotations, state, and timing fields.
Example Output
Section titled “Example Output”{ "data": { "annotations": { "description": "Demo alert from local Prometheus setup", "summary": "SuperPlane test alert is firing" }, "labels": { "alertname": "SuperplaneTestAlert", "severity": "warning" }, "startsAt": "2026-02-12T16:08:09.000517289Z", "status": "firing", "value": "1e+00" }, "timestamp": "2026-02-12T16:18:05.943610583Z", "type": "prometheus.alert"}Get Silence
Section titled “Get Silence”The Get Silence component retrieves a silence from Alertmanager (GET /api/v2/silence/{silenceID}) by its ID.
Configuration
Section titled “Configuration”- Silence: Required silence to retrieve (supports expressions, e.g.
{{ $['Create Silence'].silenceID }})
Output
Section titled “Output”Emits one prometheus.silence payload with silence ID, status, matchers, timing, and creator info.
Example Output
Section titled “Example Output”{ "data": { "comment": "Scheduled maintenance window", "createdBy": "SuperPlane", "endsAt": "2026-02-12T17:30:00Z", "matchers": [ { "isEqual": true, "isRegex": false, "name": "alertname", "value": "HighLatency" } ], "silenceID": "a1b2c3d4-e5f6-4789-a012-3456789abcde", "startsAt": "2026-02-12T16:30:00Z", "status": "active" }, "timestamp": "2026-02-12T16:30:05.123456789Z", "type": "prometheus.silence"}The Query component executes an instant PromQL query against Prometheus (GET /api/v1/query).
Configuration
Section titled “Configuration”- Query: Required PromQL expression to evaluate (supports expressions). Example:
up
Output
Section titled “Output”Emits one prometheus.query payload with the result type and results.
Example Output
Section titled “Example Output”{ "data": { "result": [ { "metric": { "__name__": "up", "instance": "localhost:9090", "job": "prometheus" }, "value": [ 1708000000, "1" ] } ], "resultType": "vector" }, "timestamp": "2026-02-12T16:30:05.123456789Z", "type": "prometheus.query"}Query Range
Section titled “Query Range”The Query Range component executes a range PromQL query against Prometheus (GET /api/v1/query_range).
Configuration
Section titled “Configuration”- Query: Required PromQL expression to evaluate (supports expressions). Example:
up - Start: Required start timestamp in RFC3339 or Unix format (supports expressions). Example:
2026-01-01T00:00:00Z - End: Required end timestamp in RFC3339 or Unix format (supports expressions). Example:
2026-01-02T00:00:00Z - Step: Required query resolution step (e.g.
15s,1m)
Output
Section titled “Output”Emits one prometheus.queryRange payload with the result type and results.
Example Output
Section titled “Example Output”{ "data": { "result": [ { "metric": { "__name__": "up", "instance": "localhost:9090", "job": "prometheus" }, "values": [ [ 1708000000, "1" ], [ 1708000015, "1" ], [ 1708000030, "1" ] ] } ], "resultType": "matrix" }, "timestamp": "2026-02-12T16:30:05.123456789Z", "type": "prometheus.queryRange"}