Skip to content

Add PagerDuty native integration #12

@2214962083

Description

@2214962083

Summary

PagerDuty is the industry-standard incident management platform used by thousands of engineering teams. A native PagerDuty integration would allow CronPulse to fit seamlessly into existing on-call workflows, making it a serious contender for production cron monitoring.

Problem

Teams using PagerDuty for incident management cannot natively route CronPulse alerts into their PagerDuty escalation policies. While the generic webhook channel can partially work, it doesn't create proper PagerDuty incidents with severity levels, deduplication keys, or auto-resolution.

Expected Behavior / Deliverable

  • A new "PagerDuty" option in the notification channel settings.
  • Users provide a PagerDuty Integration Key (Events API v2 routing key).
  • CronPulse sends properly formatted PagerDuty Events API v2 payloads:
    • Trigger event when a monitor goes DOWN / Late / Failed
    • Resolve event when the monitor recovers
    • Deduplication key based on monitor ID (so repeated alerts don't create duplicate incidents)
    • Severity mapping (e.g., critical for failures, warning for late)
    • Custom details with monitor metadata

Implementation Hints

  • Notification logic lives in: src/routes/ and the notification service layer under src/.
  • PagerDuty Events API v2 endpoint: https://events.pagerduty.com/v2/enqueue
  • Payload format: https://developer.pagerduty.com/docs/events-api-v2/trigger-events/
  • Key fields: routing_key, event_action (trigger/resolve), dedup_key, payload.summary, payload.severity
  • This is more complex than Discord/Telegram — involves both trigger and resolve lifecycle events.

Acceptance Criteria

  • PagerDuty channel type added to notification settings UI
  • Integration key configuration field
  • Trigger events sent on monitor failure
  • Resolve events sent on monitor recovery
  • Deduplication prevents duplicate incidents
  • Severity levels mapped correctly
  • "Test notification" button works for PagerDuty
  • Unit/integration tests for the PagerDuty notifier

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew feature requesthelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions