PagerDuty alternatives/vs Grafana OnCall

PagerDuty vs Grafana OnCall

Grafana OnCall is the open-source path off PagerDuty — free to self-host and native to a stack many teams already run. But it's a "build," not a "buy," and the OSS project's status changed in 2025. Here's exactly when the trade pays off.

The short version

If your reason for leaving PagerDuty is cost, or you already live in Grafana, Grafana OnCall / IRM is the natural move — alerting and on-call sitting right beside your dashboards, free to self-host under AGPLv3. One caveat: the self-hosted OnCall OSS entered maintenance mode in March 2025, and Grafana now steers new users to the managed Grafana Cloud IRM. If you want a turnkey, best-in-class paging platform with deep automation, PagerDuty is still the smoother experience.

How they compare

 PagerDutyGrafana OnCall / IRM
ModelTurnkey proprietary SaaSOpen-source, Grafana-native
LicenseProprietary SaaSAGPLv3 + Grafana Cloud
Free tier5 usersFree to self-host; Cloud free tier
Self-hostNoYes
Pricing$21/user/mo + add-onsFree (self-host) / Cloud usage
OSS statusOnCall OSS in maintenance mode (Mar 2025)
Best whenYou want turnkey depthYou already run Grafana

When Grafana OnCall wins

  • You already use Grafana for dashboards and alerting — on-call lives in the same place, with no extra vendor.
  • You want open source or to self-host — AGPLv3, data in-house, no per-user paging bill.
  • Cost is the driver — self-hosting removes the per-user + add-on model entirely.

When to stay on PagerDuty

  • You want a turnkey, fully-managed paging platform without running or maintaining it yourself.
  • You need enterprise AIOps, event intelligence and the 650+ integration catalog.
  • You're wary of the OnCall OSS maintenance-mode status and don't want to commit to Grafana Cloud IRM.

Migration effort

Moderate to high if self-hosting. You stand up (or subscribe to) Grafana IRM, rebuild schedules and escalation chains, and wire your alert sources into it. Historical incident data doesn't transfer. Run both in parallel for one on-call rotation before cutting over, and connect deploys so a bad release raises an alert automatically — for example a Buddy pipeline webhook into Grafana's alerting/OnCall API.