Интеграция OpsGenie для управления инцидентами
OpsGenie (Atlassian) — альтернатива PagerDuty с более гибким ценообразованием и нативной интеграцией с экосистемой Atlassian (Jira, Confluence). Для команд, уже использующих Jira Service Management, OpsGenie включён в Advanced/Premium планы без доплаты.
Ключевые понятия OpsGenie
Teams — группы инженеров. Алерты маршрутизируются на команды, не на отдельных людей.
On-Call Schedules — расписания дежурства с ротацией, override, временными исключениями.
Escalation Policies — порядок нотификации при неответе.
Routing Rules — условная маршрутизация алертов: по тегам, источнику, времени суток.
Alert Policies — правила трансформации алертов: шумоподавление, auto-close, re-routing.
Подключение источников алертов
Prometheus Alertmanager:
receivers:
- name: 'opsgenie'
opsgenie_configs:
- api_key: '<OPSGENIE_API_KEY>'
message: '{{ .CommonAnnotations.summary }}'
description: '{{ .CommonAnnotations.description }}'
priority: |
{{- if eq .CommonLabels.severity "critical" -}}P1
{{- else if eq .CommonLabels.severity "warning" -}}P3
{{- else -}}P5{{- end -}}
tags: '{{ .CommonLabels.alertname }},{{ .CommonLabels.cluster }}'
Grafana → OpsGenie: В Grafana alert channel выбрать OpsGenie, ввести API key. Нотификация содержит скриншот панели.
Custom webhook (любой источник):
curl -X POST https://api.opsgenie.com/v2/alerts \
-H "Authorization: GenieKey $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"message": "High error rate on payment service",
"alias": "payment-high-error-rate",
"priority": "P1",
"tags": ["payment", "production"],
"details": {"error_rate": "5.2%", "threshold": "1%"}
}'
Умная маршрутизация алертов
Routing rules позволяют направлять алерты в зависимости от контекста:
IF alert.tags contains "payment" AND time = business_hours
→ route to: payment-team
→ escalation: payment-escalation
IF alert.tags contains "payment" AND time = off_hours
→ route to: on-call-primary
→ escalation: critical-escalation
IF alert.priority = "P5"
→ create ticket only, no notification
Heartbeat мониторинг
OpsGenie Heartbeats — мониторинг регулярных процессов (cron jobs, batch tasks). Если cron не отправил heartbeat в ожидаемое время — алерт:
import requests
def send_heartbeat(heartbeat_name: str):
"""Вызывать после каждого успешного выполнения cron job"""
requests.get(
f"https://api.opsgenie.com/v2/heartbeats/{heartbeat_name}/ping",
headers={"Authorization": f"GenieKey {API_KEY}"}
)
Настройка: период 1 час, grace period 10 минут. Если cron не пинговал 70 минут — алерт на дежурного.
Интеграция с Jira Service Management
При JSM Advanced/Premium план — OpsGenie встроен. Алерт в OpsGenie → автоматически Issue в JSM. При resolve OpsGenie → Issue закрывается. Двусторонняя синхронизация: комментарии и статус обновляются в обоих инструментах.
Для standalone Jira (Software):
- OpsGenie → Jira integration: создаёт тикет при инциденте
- Поле severity → Jira priority mapping
- Assignee → по on-call расписанию
Maintenance Windows
Плановые работы — подавление алертов на период:
import requests, datetime
def create_maintenance(name: str, start: datetime, end: datetime, services: list):
requests.post(
"https://api.opsgenie.com/v1/maintenance",
headers={"Authorization": f"GenieKey {API_KEY}"},
json={
"description": name,
"time": {
"type": "schedule",
"startDate": start.isoformat(),
"endDate": end.isoformat()
},
"rules": [{"state": "disabled", "entity": {"id": s, "type": "service"}}
for s in services]
}
)
OpsGenie Mobile App
Критично для on-call: нотификации через push → звонок → SMS в настраиваемом порядке. Возможность acknowledge и эскалировать прямо из приложения без ноутбука.
Сроки интеграции
- Базовая настройка (teams + schedules + escalation) — 1 день
- Подключение мониторинга (Prometheus, Grafana, CloudWatch) — 1 день
- Routing rules + alert policies — 1 день
- Heartbeats + maintenance windows — 0.5 дня
- Jira интеграция — 0.5-1 день







