Reference & migration

Migrate from OpsGenie to MonoDuty

Migrate OpsGenie alert payloads to MonoDuty with the compatible Events API, field mappings, endpoint changes, test steps, and examples.

OpsGenie Migration Guide

Atlassian has announced that OpsGenie will be completely shut down on April 5, 2027. New sales have already ended (June 4, 2025) and the product is in maintenance mode. MonoDuty provides a seamless migration path with OpsGenie-compatible Events API support.

OpsGenie End of Life Timeline
  • June 4, 2025 β€” End of sales (no new purchases)
  • 2025–2027 β€” Maintenance mode (no new features)
  • April 5, 2027 β€” Complete shutdown (all data deleted)

Why MonoDuty?

  • OpsGenie-Compatible API β€” Send OpsGenie-formatted payloads directly to MonoDuty
  • 2-Minute Setup β€” No training required, familiar alert format
  • 53% Lower Cost β€” $9/user/mo vs OpsGenie Standard $19/user/mo
  • Voice Calls Included β€” All paid plans include voice call alerts
  • No Minimum Seats β€” Pay only for what you use
  • Actively Developed β€” Not end-of-life software

OpsGenie-Compatible Events API

MonoDuty's Events API natively understands OpsGenie Alert API v2 format. This means you can redirect your existing monitoring tool webhooks to MonoDuty without changing their configuration.

POST https://api.monoduty.com/api/v1/events?integration_key=YOUR_KEY

OpsGenie Format β€” Supported Fields

OpsGenie FieldMonoDuty MappingDescription
messageAlert titlePrimary alert message (required)
aliasDedup keyUnique identifier for deduplication
descriptionAlert detailsDetailed description of the alert
prioritySeverity (P1–P5)P1=Critical, P2=High, P3=Moderate, P4=Low, P5=Info
tagsTagsArray of string tags
entityEntityDomain/component affected
sourceSourceSource system of the alert
detailsMetadataKey-value additional data
actionsActionsAvailable alert actions

OpsGenie Webhook Format

If your tools send OpsGenie webhook format (with action and alert wrapper), MonoDuty automatically parses it:

{
  "action": "Create",
  "alert": {
    "message": "CPU usage above 90%",
    "alertId": "abc-123-def-456",
    "alias": "cpu-alert-prod-001",
    "priority": "P2",
    "tags": ["production", "cpu"],
    "entity": "prod-server-01"
  }
}
βœ“
Zero Configuration Change If your monitoring tools send OpsGenie-formatted payloads, you only need to change the endpoint URL. The payload format stays exactly the same.

Step-by-Step Migration

Migrate from OpsGenie to MonoDuty in 4 simple steps:

Create a MonoDuty Account

Sign up at monoduty.com/signup. Free tier available β€” no credit card required. Takes 30 seconds.

Create a Service & Get Your Integration Key

Go to Dashboard β†’ Services β†’ Create Service. Give it a name matching your OpsGenie service (e.g., "Production API"). Copy the integration key from the service detail page.

Update Your Monitoring Tool Endpoints

Replace OpsGenie webhook URLs in your monitoring tools with your MonoDuty Events API endpoint:

- https://api.opsgenie.com/v2/alerts
+ https://api.monoduty.com/api/v1/events?integration_key=YOUR_KEY

Test & Go Live

Use the built-in test button in Dashboard β†’ Integrations β†’ OpsGenie to send a test event. Verify it appears in your incidents. OpsGenie alert format is natively supported β€” no payload changes needed.

Run Both in Parallel We recommend running both OpsGenie and MonoDuty during the transition period. Configure your monitoring tools to send alerts to both endpoints until you're confident in the MonoDuty setup.

OpsGenie Alert Format Reference

Here's a complete example showing all supported OpsGenie-compatible fields:

{
  "message": "Database replication lag exceeding threshold",
  "alias": "db-replication-lag-prod",
  "description": "MySQL replication lag on replica-02 has exceeded 30 seconds for the past 10 minutes. This may affect read consistency for user-facing queries.",
  "priority": "P2",
  "tags": ["database", "replication", "production", "mysql"],
  "entity": "mysql-replica-02",
  "source": "Prometheus/Alertmanager",
  "details": {
    "current_lag": "45 seconds",
    "threshold": "30 seconds",
    "cluster": "prod-mysql-01",
    "dashboard": "https://grafana.example.com/d/mysql"
  },
  "actions": ["Restart Replication", "Failover to Replica-03"]
}

Common Monitoring Tool Configurations

Grafana β†’ MonoDuty (OpsGenie format)

In Grafana Contact Points, change the OpsGenie URL to your MonoDuty endpoint:

API URL: https://api.monoduty.com/api/v1/events?integration_key=YOUR_KEY
API Key: (leave empty β€” key is in URL)

Prometheus Alertmanager β†’ MonoDuty

receivers:
  - name: 'monoduty'
    webhook_configs:
      - url: 'https://api.monoduty.com/api/v1/events?integration_key=YOUR_KEY'
        send_resolved: true

Custom Script Example

import requests

# Same payload format as OpsGenie β€” just change the URL
MONODUTY_URL = "https://api.monoduty.com/api/v1/events"
INTEGRATION_KEY = "YOUR_INTEGRATION_KEY"

def send_alert(message, priority="P3", alias=None, tags=None):
    payload = {
        "message": message,
        "priority": priority,
        "alias": alias,
        "tags": tags or [],
        "source": "my-monitoring-script"
    }
    
    response = requests.post(
        f"{MONODUTY_URL}?integration_key={INTEGRATION_KEY}",
        json=payload,
        timeout=10
    )
    return response.json()

# Usage
send_alert(
    message="Disk usage above 85% on web-01",
    priority="P3",
    alias="disk-web-01",
    tags=["disk", "production"]
)
βœ“
Need Help Migrating? Visit our OpsGenie Migration page for a detailed comparison, or contact our team for personalized migration support.