Opsgenie cost vs self-hosted GoAlert

Opsgenie ends support in April 2027, so the real comparison is Jira Service Management licensing against GoAlert's hosting, Twilio usage, setup and high availability effort. This page shows how to price each side with your own numbers.

On this page

Opsgenie cost vs self-hosted GoAlert: where the money actually goes

Opsgenie reaches end of support on April 5, 2027, and Atlassian's stated destination is Jira Service Management. GoAlert has no license fee: it is licensed under Apache 2.0, and v0.35.0 was released on September 21, 2026. That moves the cost question to what you run and pay for directly: PostgreSQL hosting, Twilio usage for SMS and voice, setup effort, and the redundancy a paging system needs. No Opsgenie or Jira price is given here, because the outcome depends on your number of users, on-call schedules and notification volume. Count those three figures first, then compare them with each vendor's written quote.

Most of the recurring cost sits in three places. The first is the PostgreSQL database, which GoAlert's getting started guide describes as its only hard requirement, recommending PostgreSQL 17 or newer and the pgcrypto extension. The second is Twilio, which is currently the only supported provider for GoAlert voice and SMS notifications. Twilio bills you directly for messages, calls and phone numbers, so ask your team to model the pages sent per on-call engineer per month. The third is compute for the GoAlert binary or goalert/goalert container images. One-time costs include setup, rebuilding schedules and escalation policies, re-pointing alert sources and testing notifications before cutover. Ask any implementation partner to price these as separate line items.

The largest hidden cost is keeping paging available. GoAlert's guide suggests running one instance in the default engine mode and the rest with the --api-only flag, and it supports database switchover with minimal disruption. Each instance needs the same data encryption key, which protects sensitive values such as API keys in the database, so key storage and rotation become an ongoing operational task. Budget for failover tests, monitoring of the paging path itself, and staff time for on-call coverage of the platform. A missed page usually costs more than the software, so confirm these practices in a written scope before comparing totals.

Which cost components change when Opsgenie ends

This table compares each cost component of staying on Opsgenie's successor path with running self-hosted GoAlert, and marks whether each cost is one-time or recurring. Read the commercial column against your own Atlassian quote, since no list price is supplied here, and treat the self-hosted column as the work and hosting you will need to fund. The main takeaway is that licensing is only one line of the comparison, and the recurring SMS, voice and database operations lines decide most of the long-term difference.

Cost componentCommercial path (Jira Service Management or Opsgenie renewal)Self-hosted GoAlert
Subscription or licenseRecurring Atlassian subscription for Jira Service Management, priced by your quote and agent or user countNo license fee: GoAlert is Apache 2.0 licensed, so the recurring cost is the infrastructure and staff time that run it
PostgreSQLNot billed separately by AtlassianRequired hard dependency; you already pay for it if you run PostgreSQL, or must add a managed or self-run instance, with pgcrypto enabled and PostgreSQL 17 or newer for new installs
Twilio SMS and voiceIncluded in the Atlassian offering as your quote defines it; confirm what notification volume is coveredUsage-based and recurring: you pay Twilio per SMS and voice call, so volume of alerts and on-call responders drives the bill
Infrastructure for app instancesNot applicable: Atlassian hosts the serviceRecurring: compute for one or more GoAlert instances, load balancing and monitoring, sized for your alert volume and redundancy target
ImplementationOne-time: onboarding and configuring Jira Service Management or Opsgenie integrationsOne-time: installing GoAlert, setting the encryption key, configuring login, rebuilding schedules and escalation policies
Data migrationOne-time: exporting and re-mapping Opsgenie data to the Atlassian destinationOne-time: exporting schedules and escalation data before the April 5, 2027 shutdown and re-creating them in GoAlert
Support and high availabilityRecurring vendor support as covered by your Atlassian agreementRecurring internal or retainer effort for failover, database switchover, backups and on-call for the paging system itself
Upgrades and internal skillsVendor-managed upgrades; limited internal skills neededRecurring: staff time to track releases such as v0.35.0 and to keep skills in-house, or a paid retainer to cover them

What moves the GoAlert cost up or down

The GoAlert side of the comparison is mostly infrastructure and people, so the cost moves with how many people are on call, how many notifications they receive, and how much availability the paging path must keep. Each card below maps to a line in the cost table and names what to check before you request a quote.

Responders and schedule complexity

Responder count and the number of schedules, rotations and escalation policies drive database size and the configuration work during setup. Teams with many overlapping rotations spend more time on migration and testing than teams with a few flat schedules. Count your services, escalation policies and calendar subscriptions before asking for a quote, and ask whether the fixed scope covers rebuilding each one from exported Opsgenie data.

SMS and voice notification volume

Twilio bills SMS and voice notifications separately from GoAlert, so this line of the cost table rises with alert volume, retries and the number of escalation steps that reach phones. Your Twilio account pays for usage, not DeployOpen or GoAlert. Pull a 90-day sample of notifications by channel from Opsgenie and confirm the Twilio rates for your countries and voice routes before budgeting.

Multiple instances for availability

A single GoAlert instance is the cheapest option, but a paging system that depends on one process has a single point of failure. The getting started guide recommends one instance in the default engine mode and the rest with the --api-only flag in a cluster, and it supports database switchover with minimal disruption. Extra instances add compute and load balancer cost, plus testing of failover. Ask for the availability target in writing before choosing the instance count.

PostgreSQL operating model

GoAlert's only hard requirement is PostgreSQL, and its getting started guide recommends PostgreSQL 17 or newer with the pgcrypto extension. The cost depends on whether you run a managed PostgreSQL service in your cloud account, an in-house cluster, or a shared database. Backups, point-in-time recovery, patching and high availability for the database usually cost more than GoAlert itself. Confirm who owns the database runbook and the recovery target before comparing against a Jira Service Management subscription.

Identity integration and access

Login through GitHub OAuth or any OpenID Connect provider reduces the number of local accounts to manage, but each integration has setup and testing costs. If your identity system is not directly supported, the getting started guide suggests Dex to bridge it, which adds one more service to run and patch. Check whether your identity provider already has an OpenID Connect endpoint, and include the Dex option in the quote if you need it.

Internal skills and on-call ownership

GoAlert is licensed under Apache 2.0, so software cost is zero, but someone must own upgrades, the data encryption key, database changes and alert source configuration. The data encryption key must be the same on every instance, so losing or mismanaging it has direct consequences. Estimate the hours your platform team can spare each month, then compare that with a fixed-scope implementation plus a support retainer, and ask for the handover documentation in the quote.

How to build the comparison with your own numbers

This sequence turns the cost question into a like-for-like comparison built from your own Atlassian quote, your notification history and your own labor estimates. The output is a side-by-side view of current and self-hosted costs that your finance and security leads can check line by line.

  1. Request the Atlassian quote for your current scope

    Ask your Atlassian account team or reseller for a written quote for Opsgenie or Jira Service Management covering the same number of users, responder roles, teams and integrations you use today. Include the hosting region and any support tier you run now. The step is done when you hold a document that lists every seat type and add-on with its billing period, so the figure can be compared with the other lines below.

  2. Count notifications from your Opsgenie reports

    Pull the last several months of notification and alert history from Opsgenie reporting, separating SMS, voice, push and email. Your on-call lead or platform owner should run this, because the counts drive the Twilio line. The step is done when you have a monthly average and a peak month for SMS and voice, plus the number of distinct escalation paths that generated them. Keep the raw export so the figures can be audited later.

  3. Price Twilio from its own rate card

    Take the monthly SMS and voice counts from the previous step and multiply them by the per-message and per-minute rates on Twilio's published pricing for your destination countries. Add the phone number rental for each sender number you would need, and confirm any carrier or regulatory fees that apply to your region. Your finance team should record the result as a recurring monthly line. The step is done when the Twilio estimate is traceable to a rate card page you can cite.

  4. Size the PostgreSQL 17 or newer database

    Plan a PostgreSQL database running version 17 or newer, with the pgcrypto extension enabled, which GoAlert requires. Ask your database or cloud team to price a managed or self-run instance with backups, point-in-time recovery and the storage you expect from your alert and on-call history volume. Confirm the instance is inside your own cloud account or data center. The step is done when you have a sized configuration and a cost line that covers compute, storage, backup retention and network traffic.

  5. Add the cost of two or more GoAlert instances

    Account for at least two GoAlert instances, because the getting started guide recommends one instance in default engine mode and the others with the --api-only flag for high availability. Price the compute, load balancer or ingress, and the secret handling for the data encryption key that must be identical on every instance. Include a switchover plan for the database, since GoAlert supports switchover with minimal disruption. The step is done when you can show what runs where, and the infrastructure line reflects every instance plus the failover path.

  6. Estimate internal and partner hours as ranges

    Estimate setup, migration, testing and ongoing operations hours for your own engineers and for any implementation partner, expressed as low and high ranges rather than single values. Cover schedule and escalation rebuild, integration re-pointing, notification testing, patching, and on-call for the paging system itself. Ask any partner for a fixed-scope written quote so that the partner line is backed by a document. The step is done when both ranges are recorded with an owner for each task.

  7. Compare one-time and recurring totals side by side

    Build a table with two columns, one for the Atlassian path and one for self-hosted GoAlert, and split each into one-time costs such as migration and setup and recurring costs such as licensing, Twilio, database, compute and labor. Show the low and high ranges for the labor lines and note which inputs drive each total up or down. Review the sheet with your security, finance and operations owners. The step is done when every figure links to a quote, bill, rate card or internal estimate, and the sheet states the assumptions behind any number you could not source.

What a self-hosted GoAlert deployment needs to run

GoAlert is distributed as a single binary, and Docker images are published for each release as goalert/goalert, so the application itself is a small part of the work. The only hard requirement is a PostgreSQL database. The getting started guide recommends PostgreSQL 17 or newer for new installations and requires the pgcrypto extension. For cost planning, the database is the component that needs an owner: someone must provision it, back it up, patch it and decide whether it runs in your existing managed PostgreSQL service or on dedicated virtual machines. Confirm which of these your platform team already supports before you price anything.

GoAlert recommends setting a data encryption key so that sensitive values such as API keys are encrypted before they are written to the database. The key must be identical on every instance. Treat it as a secret with its own storage, rotation procedure and recovery copy, because an instance started with a different key cannot read what the others wrote. Login can use GitHub OAuth or any OpenID Connect provider, with Dex suggested to bridge other identity systems. Decide which identity source your responders will use before go-live, since that choice determines who can reach the paging console during an incident.

For high availability, the getting started guide describes running one instance in the default engine mode and the rest with the --api-only flag, for example across a Kubernetes cluster. The guide also states that database switchover is supported with minimal disruption. Plan and rehearse that failover, and confirm the exact behavior for your PostgreSQL topology with the GoAlert documentation at GoAlert docs. Finally, Twilio is currently the only supported provider for GoAlert voice and SMS notifications. That makes a Twilio account, its phone numbers and its usage charges a recurring line item, and it means an SMS or voice outage at Twilio is a paging outage. Ask your team to test a voice call and an SMS to every responder before cutover.

Costs teams forget on each side

Opsgenie's replacement cost is not only the license line. Some costs sit on the Atlassian side, such as integration rework and seat growth, and others sit on the self-hosted side, such as testing, backups and credential upkeep. Review both columns before comparing totals.

Integration rework on the Atlassian path

Moving to Jira Service Management means re-pointing every alert source, webhook and schedule sync that Opsgenie feeds today, and re-testing each one. Inventory integrations from monitoring, chat and ticketing before pricing the move, because each one is a labor line that a per-seat quote does not show. Ask Atlassian which Opsgenie integrations have direct equivalents and which need custom work.

Jira seat growth for non-responders

Jira Service Management charges for agents who work tickets, so people who only receive pages may still be counted as paid users once the on-call roster is moved. Check whether responders, stakeholders and read-only viewers fall into different license types. Ask for a quote that lists each user category separately so seat growth is visible before renewal.

Renewal timing before April 5, 2027

Opsgenie's shutdown date is fixed, and unmigrated data is removed after it. A renewal signed close to the deadline can leave little time for parallel running and rollback. Map contract end dates against the export, rebuild and cutover phases, and confirm with Atlassian whether any term can be shortened or extended.

On-call testing time

A paging system is only trusted after every escalation policy has been exercised end to end. Plan time to trigger test alerts for each service, confirm SMS and voice delivery to each responder, and verify acknowledgement and fallback steps. This work recurs after each schedule or policy change, so budget it as ongoing staff time, not a one-off task.

PostgreSQL backup and restore drills

GoAlert's only hard requirement is PostgreSQL, so the database becomes the system of record for schedules and escalations. Someone must own backups, point-in-time recovery and restore tests, and run them on a schedule. Ask whether your team already runs a PostgreSQL service with these controls, since adding one is a recurring cost that a hosted license does not include.

Certificate and secret rotation

GoAlert recommends a data encryption key for sensitive values such as API keys, and the same key must be present on every instance. Rotating that key, TLS certificates and Twilio credentials requires a documented procedure and an owner. Confirm who holds the key material, how it is stored, and how rotation is rehearsed without causing missed pages.

Twilio numbers and compliance setup

Twilio is the only supported provider for GoAlert SMS and voice, so Twilio usage is billed directly on your account. Costs include phone numbers, per-message and per-minute usage, and any sender registration your countries require. Ask your team to model call volume during a real incident, not only routine rotations, and confirm which regional rules apply to your responders.

Alert source reconfiguration

Prometheus and Grafana alerts currently reach Opsgenie through their own integrations, and GoAlert lists both as alert sources. Each rule's routing labels, receivers and silences need review so alerts land on the right service. Plan a shadow period where both systems receive alerts, and remove the old receivers only after each source has been verified.

Runbook updates

Runbooks often name Opsgenie screens, escalation steps and acknowledgement commands. Each one must be rewritten for GoAlert, reviewed by the people who respond, and stored where on-call engineers can reach it during an outage. Schedule the review before cutover, and check that runbooks linked from alert payloads still resolve after the change.

Questions buyers ask before comparing Opsgenie and GoAlert costs

How much effort does a GoAlert setup take, and what drives it?

The effort depends mostly on how many services, escalation policies, rotations and alert sources you need to recreate, and on how much of your Opsgenie history you carry over. GoAlert itself is distributed as a single binary with Docker images, and its one hard requirement is a PostgreSQL database with the pgcrypto extension. The larger share of work is usually configuration and testing: rebuilding schedules, mapping who is paged at each step, wiring alert sources such as Prometheus or Grafana, and confirming SMS and voice delivery. Multiple instances for high availability add a second layer of work, including a shared data encryption key on every instance and a database switchover procedure you have rehearsed. Ask any implementation partner to break its quote into these components.

Can our own team set up GoAlert without outside help?

Many teams can, provided they have engineers comfortable with Linux, containers, PostgreSQL and their identity provider. The GoAlert getting started guide is short on hard requirements, but a paging system is operationally sensitive, so the question is less whether the install works and more whether someone owns it after cutover. Check four things honestly: whether you have on-call capacity to build and test the system in parallel with Opsgenie, whether someone can perform database backups and restores, whether the team can test SMS and voice notifications end to end, and who patches the system on a regular schedule. If any answer is unclear, an external partner can cover part of the work under a fixed-scope agreement, with the rest kept in-house.

How long does the migration take, and what sets the timeline?

The timeline is set by your Opsgenie deadline, the number of teams and schedules to move, and how much parallel running you want before cutover. Opsgenie reaches end of support on April 5, 2027, and unmigrated data is deleted after that, so the export and rebuild work has a fixed endpoint. Other timeline drivers include the complexity of escalation chains, the number of integrations that send alerts, the time needed for change approval in regulated environments, and how many test rounds your on-call staff can absorb. Ask for a written schedule with milestones for export, build, notification testing, parallel run and cutover, and check that each milestone has a named owner.

What does GoAlert need from our staff for PostgreSQL, identity and telephony?

Three areas need staff time from the start. For PostgreSQL, you need someone who can run a supported version, configure backups and restore tests, and handle the switchover procedure; GoAlert recommends PostgreSQL 17 or newer for new installations. For identity, GoAlert supports GitHub OAuth and any OpenID Connect provider, with Dex suggested to bridge other systems, so your identity team must register the application and manage its secrets. For telephony, Twilio is the only supported provider for voice and SMS, so someone must hold the Twilio account, sender registrations and number provisioning. Each of these areas adds recurring responsibility, not only one-time setup.

Is Twilio required for SMS and voice notifications in GoAlert?

Yes, if you want SMS and voice paging through GoAlert, Twilio is the provider it currently supports, according to the GoAlert getting started guide. That means a Twilio account, purchased phone numbers and per-message or per-minute usage charges billed by Twilio, separate from any GoAlert licence cost. GoAlert is licensed under Apache 2.0, so the software itself carries no licence fee, but the notification path does. Slack notifications and email-based alert creation through Mailgun or built-in SMTP ingress are also available as escalation steps, though they do not replace phone paging for on-call engineers. Ask your telephony team to model message and call volume from your current Opsgenie history before comparing totals.

How should we compare a fixed-scope implementation quote with internal effort?

Put both options on the same basis: the same list of deliverables, the same environments and the same test coverage. A fixed-scope quote is agreed in writing before work starts, so its cost is known up front, but it covers only what the scope names. Internal effort is harder to see because it is paid through salaries and displaced project work, so calculate it in hours per role, including PostgreSQL administration, identity configuration, Twilio setup, testing and ongoing patching. Add recurring costs to both sides: Twilio usage, hosting, backups, upgrades and on-call support. DeployOpen does not publish a price list, so request a quote from a written scope and compare it line by line with your internal estimate.

What is one-time work and what recurs after GoAlert goes live?

One-time work includes the export from Opsgenie, the rebuild of schedules and escalation policies, alert source configuration, identity integration, and notification testing before cutover. Recurring work includes database backups and restore tests, applying GoAlert upgrades as new releases are published (v0.35.0 was released on September 21, 2026, according to the GoAlert releases page), rotating the encryption key handling, maintaining Twilio numbers and registrations, and keeping at least one tested path for paging when the primary instance is unavailable. Recurring cost is the one most often underestimated, so ask any quote to show it separately from setup.

Keeping a paging system highly available costs more than the software

A paging system needs more redundancy than most internal tools because a missed page is a failed escalation. If the GoAlert instance that receives an alert is down, or its database is unreachable, nobody is woken up and the incident sits unacknowledged. The license cost of GoAlert is zero, but the work to make the service survive a node failure, a database failover and a notification provider outage is the part a team has to budget for. Plan for at least two GoAlert instances behind a load balancer. The getting started guide recommends running one instance in the default engine mode and the rest with the --api-only flag, so only one instance drives the engine at a time. Test that a failed node does not stop escalations, and record how the team confirmed it.

The database is the other single point of failure. GoAlert requires PostgreSQL, and the guide recommends PostgreSQL 17 or newer for new installations and the pgcrypto extension. Someone on the team must own PostgreSQL high availability: replication, automated or runbook-driven failover, backups and restore tests. The guide states that GoAlert supports database switchover with minimal disruption, but a switchover has to be rehearsed against your own topology. Use the same data encryption key on every instance, and store it in a secrets manager so a rebuilt node can still read encrypted API keys. Each of these items recurs as engineering time, and it is usually larger than the database hosting bill.

Monitor the notification path itself, not only the GoAlert process. Twilio is currently the only supported provider for voice and SMS, so a Twilio account, numbers, and billing status are dependencies that can fail quietly. Run a scheduled test page to each on-call responder, alert when delivery fails, and keep a secondary contact path such as Slack or email for escalation steps. Support is the final cost to confirm. GoAlert is Apache 2.0 open source, so you rely on the community, your own engineers, or a third-party firm for fixes at 3 a.m. A vendor contract gives you a response commitment that community projects do not. Ask which support options exist for GoAlert in your region, and price them against a paging outage.

How DeployOpen scopes a fixed-price GoAlert implementation

DeployOpen plans, implements, hardens, documents and supports self-hosted open-source platforms inside your own cloud accounts, data centers or air-gapped networks. For an Opsgenie exit, we start with a written scope that sets out the GoAlert, PostgreSQL, Twilio and identity pieces your paging system needs, so cost and effort are visible before work begins.

How we scope

  • Inventory current Opsgenie services, schedules, escalation policies, integrations and notification volumes before quoting.
  • Confirm where GoAlert will run, which PostgreSQL service and high availability design fit your environment.
  • Agree Twilio account ownership, SMS and voice needs, and which alert sources must be re-pointed in writing.
  • Most engagements are fixed-scope, with deliverables and timelines agreed in writing before work starts.

How we build

  • Deploy GoAlert as a single binary or Docker image with PostgreSQL 17 or newer and the pgcrypto extension enabled.
  • Set the data encryption key, identity provider login and multi-instance layout, with one default engine and API-only instances.
  • Re-create rotations, escalation policies and integrations in GoAlert, then test notifications end to end before cutover.
  • Document configuration, runbooks and the failover approach so your team can judge the cost of keeping paging available.

How we hand over

  • Deliver the written configuration, architecture notes and test records covering each agreed deliverable.
  • Walk your on-call, platform and security teams through schedules, escalations, key handling and backup procedures.
  • Provide evidence for your own compliance assessments, while independent auditors remain responsible for any audit opinion.
  • Confirm the handover checklist with you in writing before the engagement closes.

How we support

  • Ongoing support, upgrades and continuous testing are available as retainers after handover.
  • Retainers can cover GoAlert version upgrades, database maintenance, backup checks and notification tests.
  • Ask for the retainer scope, response expectations and exit terms in the same written quote as the implementation.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.