Ескертулер: PagerDuty, Opsgenie
Ескертулер: PagerDuty, Opsgenie
1) Неге жеке алерт платформасы
Мақсаты - қажетті адамға/командаға дереу және релевантты сигнал жеткізу және инцидент процесін: тану (ack), эскалация, коммуникация, постмортем. PagerDuty және Opsgenie береді:- Сервистер/тегтер/орталар бойынша бағыттау.
- Эскалация және кестелер (кезекшілік, follow-the-sun).
- Оқиғаларды дедупликациялау/корреляциялау.
- Тыныш терезелер (maintenance/freeze) және мют ережелері.
- Мониторингпен интеграциялау, CI/CD және ChatOps.
Тірек: SLO-табалдырығы → алерт → адам/автомат → runbook → шегініс/фикс → постмортем.
2) Сигналдар моделі және күрделілігі (severity)
Ұсынылатын шкала:- critical (page) - SLO бұзылуы/ақша жолының қатесі (депозит/шығару), қолжетімділіктің төмендеуі, burn-rate.
- high (page/тикет) - анық SLO-сынусыз елеулі тозу.
- medium (тикет) - сыйымдылық, бэк, ретра деградациясы.
- low (ақпарат) - трендтер, ескертулер.
Ереже: page тек SLO немесе айқын бизнес триггер бойынша.
3) Бағыттау архитектурасы
1. Дереккөз (Prometheus/Alertmanager, Grafana, бұлтты мониторинг, жеке вебхактар).
2. Шлюз (PagerDuty/Opsgenie service/integration).
3. Саясаттар: тегтер бойынша бағыттар ('service', 'env', 'region'), severity, payload.
4. Эскалация: кезекші деңгейлердің реттілігі (L1 → L2 → менеджер).
5. Коммуникация: ChatOps-арналар, статус-беттер, тарату.
Негізгі тегтердің үлгісі (стандарттаңыз)
'service', 'env', 'region', 'version', 'runbook', 'release _ id', 'route', 'tenant' (егер В2В/мульти-тенант болса).
4) On-call және эскалация кестелері
Schedules: primary/secondary, роли (SRE, DBRE, Sec).
Rotations: күндізгі/түнгі, follow-the-sun, демалыс күндері.
Overrides: демалыс/ауру.
Эскалация: ack-таймаут 5-10 мин → келесі қабат. Жұмыс сағаттары бойынша - бейінді бөлімге; тыс - on-call алаңы.
Кеңес: қысқа эскалация қадамдарын түнде (азырақ шаршау) және күндіз ұзағырақ (контексті бар) ұстаңыз.
5) Alertmanager (базалық паттерн) интеграциясы
yaml receivers:
- name: pagerduty pagerduty_configs:
- routing_key: ${PAGERDUTY_ROUTING_KEY}
severity: '{{ if eq. Labels. severity "critical" }}critical{{ else }}error{{ end }}'
class: '{{.Labels. service }}'
component: '{{.Labels. env }}'
group: '{{.Labels. region }}'
description: '{{.Annotations. summary }}'
details:
service: '{{.Labels. service }}'
env: '{{.Labels. env }}'
runbook: '{{.Annotations. runbook }}'
release: '{{.Annotations. release }}'
route:
receiver: pagerduty group_by: ["service","env","region"]
group_wait: 30s group_interval: 5m repeat_interval: 2h
Opsgenie (webhook)
yaml receivers:
- name: opsgenie opsgenie_configs:
- api_key: ${OPSGENIE_API_KEY}
responders:
- name: "SRE Primary"
type: team priority: '{{ if eq. Labels. severity "critical" }}P1{{ else }}P3{{ end }}'
details:
trace: '{{.Labels. trace_id }}'
runbook: '{{.Annotations. runbook }}'
6) Шу, дедуп және корреляция
Дедуп кілті: тұрақты fingerprint пайдаланыңыз (мысалы, service + route + code).
Топтау: 'group _ by' қызметі/қоршауы бойынша, 5xx каскады ондаған беттерді тудырмауы үшін.
Мьюттар/тыныш терезелер: көші-қон/релиздер/жүктеме тестілері уақытында.
Себебі бойынша Suppression: Егер 'api-gateway @prod' үшін P1 оқыс оқиғасы болса, еншілес P2/P3 басыңыз.
Анти-паттерн: SLO-ға расталған әсері жоқ CPU/Memory бойынша пейдж.
7) Релиздермен және авто-әрекеттермен байланыс
PagerDuty/Opsgenie канареялық деплосы кезінде SLO-гейт → webhook-тен CI/CD → pause/rollback (Argo Rollouts/Helm) алерт алады.
Алерт құрамында: 'release _ id', 'image. tag ', қайтару қадамының paypline және runbook сілтемесі.
Аңдатпалардағы runbook сілтемелер үлгісі
runbook: https://runbooks. company/rollback/api-gateway#canary
8) ChatOps және коммуникация
Slack/Teams-те инцидент арнасын автоматты түрде жасау, тикетке байланыстыру.
Slash-команды: `ack`, `assign @user`, `status set`, `postmortem start`.
Мәртебе-бет: P1/P2 кезінде автоматты түрде жаңарту.
9) Оқыс оқиғаның өмірлік циклі (минимум)
1. Trigger (SLO/датчиктерден алерт).
2. Page (primary on-call).
3. Ack (растау, TTA).
4. Communicate (арна/мәртебе).
5. Mitigate (rollback/feature-flag/оқшаулау).
6. Resolve (TTR).
7. Postmortem (таймлайн, себептер, әрекеттер, сабақтар, тапсырмалар иесі).
Role-kit: IC (incident commander), Ops lead, Comms, Scribe.
10) Пэйлоадтың пайдалы алаңдары (normalize)
json
{
"service": "payments-api",
"env": "prod",
"region": "eu-central-1",
"severity": "critical",
"event_class": "slo_burn",
"summary": "Withdraw 5xx > 0. 5% for 10m",
"runbook": "https://runbooks/payments/withdraw-5xx",
"release_id": "rel-2025-11-03-14-20",
"image": "ghcr. io/org/payments:1. 14. 2",
"trace_id": "8a4f0c2e9b1f42d7",
"annotations": { "canary": "25%" }
}
11) Сигнал көздерінің интеграциясы
Prometheus/Alertmanager - SLO/RED негізгі көзі.
Grafana Alerting - дашбордтар/бизнес-метриктер үшін оңай.
OpenTelemetry/SpanMetrics - бағыттар бойынша latency/error.
K8s-оқиғалар - кластер авариялары (control-plane, PDB бұзушылықтар).
БД/Кезектер - lag/locks/replication.
Қолданбалар вебхоктары - домендік сигналдар (PSP қатесі, фрод өрісі).
12) Саясат және комплаенс
Саясаттарды, кестелерді, мьюттерді құру/өзгерту үшін RBAC.
Аудит: кім мәртебесін таныды/тағайындады/өзгертті, таймстемптер.
PII-пэйлоадтардағы барынша азайту (пайдаланушының email/телефонының орнына ID тикет).
DR-жоспары: PagerDuty/Opsgenie (fallback арна) қол жетімсіз болғанда не істейміз.
13) Практика мысалдары (PagerDuty vs Opsgenie)
14) Тыныш терезелер және үсік
Freeze: тек P1 қалдырып, жоспарлы шығарылым терезелеріне пейджинг жасауға тыйым салу.
'env = stage', 'region = dr', 'service = batch' тегтері бойынша.
Уақытша mute: ДБ/жүктеме тестері көші-қон кезінде - анық иесімен.
15) Тиімділік метрикасы (SRE/DORA)
MTTA/MTTR (командалар/сервистер/ауысымдар бөлінісінде).
Runbook бағдарламасындағы алерттер% (мақсаты ≥ 95%).
SLO бойынша page-алерт үлесі (мақсаты ≥ 90%).
Ratio пайдалы/шулы (мақсаты ≥ 3:1).
% автоқолданыс (веб-хук арқылы pause/rollback) - өсіру.
Burn-down postmortem action items 14/30 күн бұрын.
16) Қарсы үлгілер
Пайдаланушыға әсер етпейтін «темір» пейдж (CPU, диск).
'group _ by' → «дауылдың» болмауы.
Тыныш терезелер жоқ - релиздер барлығын қызыл бояумен бояады.
'service/env/runbook' жоқ пэйлоадтар - бағыттау/әрекет ету мүмкін емес.
Severity және ережелердің бірыңғай шкаласы жоқ (әр дереккөз - өз бетінше).
Ешкім жөндемейтін «мәңгілік» ескертулер (алерт-борыш).
17) Енгізу чек-парағы (0-45 күн)
0-10 күн
Severity шкаласын келісу және тегтерді/аңдатпаларды стандарттау.
PagerDuty/Opsgenie қызметтерін құру, schedules және негізгі эскалацияларды орнату.
Alertmanager/Grafana бағдарламасын байланыстыру, 'group _ by' және дедупты қосу.
11-25 күн
SLO-алерттерді (multi-window burn) енгізу, runbook сілтемелерін қосу.
ChatOps баптаулары: автоарналар, ack/assign пәрмендері.
Босату/көшіру үшін тыныш терезелерді қосу.
26-45 күн
Канарейка үшін авто-pause/rollback дегенді біріктіру.
MTTA/MTTR және аллерт-гигиена (шуды тазалау) есептерін енгізу.
action items постмортемді және бақылауды стандарттау.
18) Дайын сниппеттер
Grafana Alerting → PagerDuty (JSON body маппинг)
json
{
"routing_key": "${PAGERDUTY_ROUTING_KEY}",
"event_action": "trigger",
"payload": {
"summary": "{{.RuleName }}: {{ index. Labels \"service\" }}",
"severity": "{{ if eq (index. Labels \"severity\") \"critical\" }}critical{{ else }}error{{ end }}",
"source": "grafana",
"component": "{{ index. Labels \"env\" }}",
"group": "{{ index. Labels \"region\" }}"
},
"links": [
{ "href": "{{.DashboardURL }}", "text": "Dashboard" },
{ "href": "{{ index. Labels \"runbook\" }}", "text": "Runbook" }
]
}
WebBook → Argo Rollouts pause
bash curl -X POST "$ARGO_API/rollouts/pause" \
-H "Authorization: Bearer $TOKEN" \
-d '{"name":"api-gateway","namespace":"prod"}'
Opsgenie - Routing Rule (жалған)
yaml if:
tags: ["service:payments","env:prod"]
severity: ["P1","P2"]
then:
route_to: "SRE-Payments"
notify: ["Primary OnCall","Secondary"]
19) Қорытынды
Күшті алерт контуры - бұл процесс + тәртіп: SLO-бағытталған стратификация, сауатты бағыттау және эскалация, бірыңғай тегтер мен пэйлоадтар, тыныш терезелер, ChatOps және автоматты әрекеттер (pause/rollback). Бюджет және UX бойынша PagerDuty немесе Opsgenie таңдаңыз, бірақ бірдей шу, кезекшілік және жауапкершілік ережелерін ұстаныңыз - онда пейдж сирек, дәл және пайдалы болады, ал оқиғалар қысқа және басқарылатын болады.