You self-host Grafana OnCall OSS, probably next to Prometheus and Grafana, and you chose it to avoid per-user pricing. The repository was archived on 2026-03-24. This post covers what changed, what still works, five alternatives with prices and as-of dates, how to choose between them, and a migration checklist.
What is Grafana OnCall?
Grafana OnCall is an on-call management tool from Grafana Labs: alert integrations, routes, escalation chains, on-call schedules and notifications, with a Slack integration. The open source edition (Grafana OnCall OSS) was self-hosted as a Grafana plugin with its own backend, licensed AGPLv3. Many teams ran it next to Prometheus and Grafana.
Is Grafana OnCall deprecated?
The open source edition is archived. The hosted product continues as Grafana Cloud IRM.
The dates:
- 2025-03-11: OnCall OSS enters maintenance mode. For the following year Grafana Labs fixes only critical bugs and CVEs with a CVSS score of 7.0 or higher.
- 2026-03-24: The grafana/oncall repository is archived. It is read-only. No more fixes or releases.
- 2026-03-24: Cloud Connection shuts down for OSS users. Cloud Connection was the relay through Grafana Cloud that OSS stacks used for SMS, phone calls and mobile push. The Grafana IRM mobile app stops working with self-hosted OnCall OSS on the same date.
The sources are Grafana Labs' announcement and the repository README.
What still works on a self-hosted install
The software keeps running. Slack, email, Telegram, webhooks and the web UI do not depend on Cloud Connection. For SMS and phone calls, Grafana's announcement pointed OSS users to their own provider (Twilio, Exotel, Zvonok) or webhooks. Push needs a third-party service such as Pushover, Gotify or ntfy.
The code stays open source under AGPLv3, and Grafana Labs said it welcomes community forks.
Grafana OnCall alternatives: five options
1. Grafana Cloud IRM
Grafana Cloud IRM is the hosted successor to OnCall, and it combines OnCall and Incident into one product. The concepts match what you run now, and Grafana Labs documents the migration from OnCall OSS. SMS, phone calls and the mobile app work. The free tier covers up to 3 active IRM users a month. An active IRM user is anyone in a schedule or escalation chain, who changes alert status, receives or sends a page, or creates or updates an incident.
Beyond 3 users, the Pro plan costs $20 per active IRM user a month (as of 2026-09-19, Grafana pricing). There is no self-hosted edition, and you pay per active user, which is the pricing model many self-hosters chose OnCall OSS to avoid.
2. Keep running the archived OSS
Nothing changes today, and there is no licence cost.
The risks grow with time. Security fixes stopped on 2026-03-24 for a service that faces the internet, receives webhooks and holds phone numbers. Future Grafana versions may break the plugin, which ties your Grafana upgrades to it. SMS, phone and push notifications need your own provider. Treat it as a bridge with an end date.
3. GoAlert, open source and self-hosted
GoAlert is open source under Apache 2.0 and maintained by Target. The repository is not archived and had commits in September 2026. Its README describes it as on-call scheduling, automated escalations and notifications such as SMS or voice calls, and it is distributed as a single binary and a Docker image.
You run and upgrade it yourself, and you bring your own SMS and voice provider.
4. A hosted tool priced per user
PagerDuty Professional costs $25 per user a month, or $21 billed annually (as of 2026-09-13, PagerDuty pricing). incident.io On-call costs $20 per user a month (as of 2026-09-14, incident.io pricing). Both call and text the on-call person, and both have mobile apps. The post on PagerDuty pricing covers its plans and add-ons.
5. A hosted tool with a flat price
OnCallAlerting costs $39 a month per organization with unlimited teammates. It is hosted, and it notifies in Slack and in the app only. The last section has the details and the gaps.
What each option costs for a rotation of 8
Take a rotation of 8 people who are all on schedules.
| Option | Calculation | Monthly cost |
|---|---|---|
| Grafana Cloud IRM | 3 free, 5 paid at $20 | $100 |
| PagerDuty Professional | 8 x $25 | $200 |
| incident.io On-call | 8 x $20 | $160 |
| OnCallAlerting | Flat price per organization | $39 |
| Self-hosted (GoAlert or the archived OSS) | No licence cost | Hosting, an SMS provider and your time |
List prices with monthly billing: Grafana as of 2026-09-19, PagerDuty as of 2026-09-13, incident.io as of 2026-09-14. The tools in this table do different amounts of work, so the price is one input and the next section covers the rest.
How to choose
Start from the constraint you cannot change.
- If you need phone calls or SMS to reach someone at night, choose Grafana Cloud IRM, a per-user hosted tool, or GoAlert with your own provider. OnCallAlerting does not send SMS or phone calls today.
- If you must self-host for data residency or an air-gapped network, choose GoAlert or the archived OSS as a bridge. Hosted tools do not fit here.
- If you are 3 people or fewer on call and happy in Grafana Cloud, the IRM free tier covers up to 3 active users.
- If your on-call happens in working hours or follows the sun, the team lives in Slack, and per-user pricing is the objection, choose OnCallAlerting. It costs $39 a month per organization with unlimited teammates.
What to move: Grafana OnCall concepts in other tools
Grafana OnCall has its own names for things. This is how they translate.
| Grafana OnCall | What it is | In most other tools |
|---|---|---|
| Integration | An inbound webhook URL for one alert source | Integration, alert source, service |
| Route | Rules that pick an escalation chain from the alert's content | Routing rules, or one source per policy |
| Escalation chain | Ordered steps: notify, wait, notify the next | Escalation policy |
| Schedule (rotations, overrides, shift swaps) | Who is on call now | Schedule, rota, roster, overrides |
| Notification rules (per user) | How each person is contacted, in what order | Notification rules or preferences |
Per-user notification rules are the part people forget, because each person set their own.
Migration checklist
Write down what you have: integrations, routes, escalation chains, schedules, users and their notification rules. Export schedules as iCal from OnCall so you have a record.
Decide which routes you still need. Many installs have routes nobody remembers; a move is the time to drop them.
Rebuild schedules and escalation chains in the new tool first, then alert sources. If you want to rethink them on the way, see the guide to building an on-call schedule and the escalation policy examples.
Repoint alert sources one at a time. In Grafana Alerting, add a new contact point and add it to the notification policy next to the OnCall one. In Alertmanager, add a second receiver with
continue: trueon the route so both tools get the alert.Run both in parallel for at least one full rotation. Send a test alert through each source and let one escalate to the last step.
Remove the OnCall contact points, then shut down the OnCall backend, its database, Redis and RabbitMQ if you ran them, and uninstall the plugin.
Moving from Grafana OnCall to OnCallAlerting
OnCallAlerting is hosted and costs $39 a month per organization, with unlimited teammates and up to 10 rosters. It notifies in Slack and in the web app only.
It reads Grafana and Alertmanager payloads natively. In Grafana, create a contact point of type webhook with the source URL and method POST, and attach it to a notification policy.
Schedules become rosters, with layers, follow-the-sun shifts and substitutions. Escalation chains become escalation policies with 1-10 levels. Heartbeats watch scheduled jobs.
A Grafana OnCall user will notice these gaps:
- Notifications are Slack and in-app only. There are no SMS, phone calls, email alerts, Telegram messages or mobile app.
- There are no routing rules that pick a policy from alert content. Each alert source points at one escalation policy.
- There is no import from Grafana OnCall. You rebuild schedules and chains by hand.
- There is no public API or Terraform provider.
- Acknowledging happens in the web app.
Setup is in the native webhooks docs, the rosters docs and the escalation policies docs. To try it next to your current install, start a 30-day trial.