Skip to content

Instantly share code, notes, and snippets.

@danielrosehill
Created May 18, 2025 16:40
Show Gist options
  • Save danielrosehill/5ceb3f18e76e8dc251ddb23d2dbf5e72 to your computer and use it in GitHub Desktop.
Save danielrosehill/5ceb3f18e76e8dc251ddb23d2dbf5e72 to your computer and use it in GitHub Desktop.

Alerting Cadence

This document outlines a clean alerting flow for routing notifications from systems to humans. It defines the standard alerting cadence used in professional environments and presents two examples: one SaaS-based using PagerDuty, and one self-hosted using n8n and Pushover.


πŸ“ Conceptual Sequence


\[Monitoring Event] β†’ \[Alert Sink / Webhook] β†’ \[Alert Orchestrator] β†’ \[Notifier] β†’ \[Device]

  • Monitoring Event: A system generates an alert (e.g., service down).
  • Alert Sink: A webhook or endpoint receives the alert.
  • Alert Orchestrator: Manages alert state, deduplication, escalation, etc.
  • Notifier: Sends the alert (push, SMS, call, etc).
  • Device: The human-facing endpoint receiving the alert.

πŸ“¦ Example 1: SaaS Flow (PagerDuty)

Tools:

  • Monitoring: Prometheus Alertmanager
  • Alert Sink: Webhook URL provided by PagerDuty
  • Orchestrator: PagerDuty
  • Notifier: PagerDuty Mobile App, Email, SMS, etc.
  • Device: Mobile Phone / Desktop

Sequence:


Prometheus β†’ PagerDuty Webhook β†’ PagerDuty Logic β†’ PagerDuty Push β†’ User

PagerDuty handles on-call schedules, routing, silencing, and escalation policies internally. You define a webhook integration, and Prometheus fires into that endpoint.


🏠 Example 2: Self-Hosted Stack

Tools:

  • Monitoring: Prometheus Alertmanager
  • Alert Sink: n8n webhook (or Node-RED, Flask app, etc)
  • Orchestrator: n8n workflows
  • Notifier: Pushover (via HTTP node in n8n)
  • Device: Android / iOS phone with Pushover installed

Sequence:


Prometheus β†’ n8n Webhook β†’ n8n Flow Logic β†’ Pushover API β†’ User Device

In this case, you're orchestrating the routing logic inside n8n. You can do things like:

  • Add delays and retries
  • Fan out to multiple notification services
  • Send escalations if unacknowledged

Pushover Note: Pushover does not provide webhooks for inbound alerts. It acts only as a notification target. You push to it, not the other way around.


Design Considerations

  • Use webhook-capable tools for modularity.
  • Deduplication and state tracking (e.g. "alert resolved") are usually handled by the orchestrator.
  • For self-hosting, consider storing alert state (e.g. with Redis) if escalation or de-duplication logic is needed.
  • To fan-out to SMS, TTS, etc., integrate services like Twilio or Telegram alongside Pushover.

πŸ”— Related Tools

Category Tool Options
Monitoring Prometheus, Zabbix, Uptime Kuma
Orchestration PagerDuty, OpsGenie, n8n, Node-RED
Notification Pushover, Gotify, Twilio, Email, Telegram
Custom Webhook Receivers Flask, FastAPI, n8n
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment