Logo GH

Ескертулер: 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)

МүмкіндікPagerDutyOpsgenie
Эскалация/кестеЖетілген, икемдіЖетілген, икемді
Жанжалдық рөлдер/үлгілерКүшті Incident WorkflowsIncident Templates/Stakeholders
Автоматты арналар/коммсЖақсы интеграцияТерең Slack/MS Teams
Баға белгілеу/лицензияларКөбінесе қымбат, көп адд-онӘдетте басында арзан
Тегтер бойынша бағыттауКүшті (Service Directory)Күшті (Routing Rules)
Екі платформа бірдей сценарийлердің 95% -ын жабады; құны, UX және стек интеграциясы бойынша таңдаңыз.

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 таңдаңыз, бірақ бірдей шу, кезекшілік және жауапкершілік ережелерін ұстаныңыз - онда пейдж сирек, дәл және пайдалы болады, ал оқиғалар қысқа және басқарылатын болады.

Contact

Бізбен байланысыңыз

Кез келген сұрақ немесе қолдау қажет болса, бізге жазыңыз.Біз әрдайым көмектесуге дайынбыз!

Интеграцияны бастау

Email — міндетті. Telegram немесе WhatsApp — қосымша.

Сіздің атыңыз міндетті емес
Email міндетті емес
Тақырып міндетті емес
Хабарлама міндетті емес
Telegram міндетті емес
@
Егер Telegram-ды көрсетсеңіз — Email-ге қоса, сол жерге де жауап береміз.
WhatsApp міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.