Алертинг жана мүчүлүштүктөргө жооп
(Бөлүк: Технология жана инфраструктура)
Кыскача резюме
Күчтүү алертинг - бул жөн гана "кызыл метрика" эмес, колдонуучунун баалуулугун бузуу жөнүндө сигнал. iGaming үчүн SLO-гейтс (латенттүүлүк, жеткиликтүүлүк, төлөм конверсиясы, убакыт-коштомо), multi-burn эрежелери, on-call, эскалация, ChatOps жана runbooks так ролдору маанилүү. Максаты - тез четтөөнү көрүп, оңдой алгандарга кабарлоо жана кийинки жолу тезирээк жана арзан жооп берүү үчүн билимди оңдоо.
1) негиздери: иш-аракет үчүн метрика
SLI → SLO → Alert: өлчөнүүчү сапат → максаттуу деңгээл → шарттар "бюджет күйүп жатат".
Severity (SEV): SEV1 - критикалык (киреше/GGR коркунучта), SEV2 - олуттуу, SEV3 - орточо, SEV4 - кичинекей.
Impact/Urgency: ким жапа чегет (бардык/аймак/тенант/канал) жана канчалык шашылыш (TTW ↑, p99 ↑, error-rate ↑).
Actionability: ар бир коңгуроо - белгилүү бир иш-аракет (runbook + ээси).
2) Сигналдардын таксономиясы
ТехSLO: p95/p99 latency API, error-rate, saturation (CPU/IO/GPU), queue lag.
BusinessSLO: төлөмдөрдү которуу (attempt → success), Убакыт-to-Wallet (TTW), коюмдардын ийгилиги, оюндарды баштоо.
Төлөм жолдору: PSP-спецификалык метриктер (timeout/decline spikes).
Фронт/Мобил: RUM-метрика (LCP/INP), crash-rate, синтетикалык сценарийлер (логин/депозит/коюм/чыгаруу).
3) Алертинг саясаты: SLO жана burn-rate
SLI/SLO мисалдары
Жеткиликтүүлүк 'payments-api' ≥ 99. 9% / 30d p95 `/deposit` ≤ 250 ms / 30d
Конверсия 'payments _ attempt → success' ≥ baseline − 0. 3% / 24h
TTW p95 ≤ 3 мин/24h
Multi-window / Multi-burn (идея PromQL)
Fast burn: СЛОнун бузулушу нормадан 5-10 × тезирээк (5-15 мүнөттө алерт-пейдж).
Slow burn: бюджеттин жай күйүп кетүү (1-3 саат үчүн билети + талдоо).
yaml
API success proxy metric (recording rule in advance)
record: job:http:success_ratio expr:
sum(rate(http_requests_total{status=~"2.. 3.."}[5m]))
/ sum(rate(http_requests_total[5m]))
Fast burn (99. 9% SLO)
alert: PaymentsSLOFastBurn expr: (1 - job:http:success_ratio{job="payments-api"}) > (1 - 0. 999) 14 for: 10m labels: { severity: "page", service: "payments-api" }
annotations:
summary: "SLO fast burn (payments-api)"
runbook: "https://runbooks/payments/slo"
Slow burn alert: PaymentsSLOSlowBurn expr: (1 - job:http:success_ratio{job="payments-api"}) > (1 - 0. 999) 6 for: 1h labels: { severity: "ticket", service: "payments-api" }
4) Ызы-чууну азайтуу жана сигналдардын сапаты
Чындыктын туура булагы: оор "чийки" сөздөрдү эмес, агрегаттарды (recording rules) алуу.
Deduplication: Alertmanager 'service/region/severity' боюнча топтойт.
Иерархия: адегенде бизнес/SLI боюнча алерт, төмөндө - диагностика катары техметрика.
Супрессия: planned-maintenance/release (аннотациялар) учурунда, upstream-окуялар менен.
кардиналдуулук: 'user _ id/session _ id' колдонбогула.
Тест-алерталар: үзгүлтүксүз "окуу" триггерлери (каналдарды, ролдорду, рунабук-шилтемелерди текшерүү).
5) Alertmanager: багыттоо жана эскалация
yaml route:
group_by: [service, region]
group_wait: 30s group_interval: 5m repeat_interval: 2h receiver: sre-slack routes:
- matchers: [ severity="page" ]
receiver: pagerduty-sre continue: true
- matchers: [ service="payments-api" ]
receiver: payments-slack
receivers:
- name: pagerduty-sre pagerduty_configs:
- routing_key: <PD_KEY>
severity: "critical"
- name: sre-slack slack_configs:
- channel: "#alerts-sre"
send_resolved: true title: "{{.CommonLabels. service }} {{.CommonLabels. severity }}"
text: "Runbook: {{.CommonAnnotations. runbook }}"
inhibit_rules:
- source_matchers: [ severity="page" ]
target_matchers: [ severity="ticket" ]
equal: [ "service" ]
Идея: SEV = page → PagerDuty/SMS; калган - Slack/билет. Ингибиция "ызы-чуу" төмөнкү денгээлде активдүү SEV жогору басат.
6) Grafana Alerting (кошумча катмар катары)
dashboard боюнча борборлоштурулган Alert rules (Prometheus/Loki/Cloud).
Contact points: PagerDuty/Slack/Email, Notification policies per folder.
Silences: пландаштырылган иш, көчүрүү, релиздер.
Snapshots auto-скриншот панели менен тикет.
7) On-call жана "жандуу" жараяндар
Ротация: 1-линия (SRE/платформа), 2-линия (сервистин ээси), 3-линия (DB/Payments/Sec).
SLA жооп: таануу ≤ 5 мин (SEV1), диагностика ≤ 15 мин, байланыш ар бир 15-30 мин.
Нөөмөт каналдары: '#incident -warroom', '#status -updates' (фактылар гана).
Runbooks: ар бир курсу + тез ChatOps команда шилтемени ('/rollback ', '/freeze', '/scale ').
Окуу сигналдары: ай сайын (адамдарды, каналдарды, рунабук-актуалдуулугун текшерүү).
8) Окуялар: жашоо цикл
1. Детект (алерт/репортаж/синтетика) → Acknowledge on-call.
2. Triage: SEV/таасир/гипотеза аныктоо, war-room ачуу.
3. Турукташтыруу: Roulbook/артка/масштабдоо/phicheflagy.
4. Байланыш: макам үлгүсү (төмөндө карагыла), ETA/кийинки кадамдар.
5. Жабуу: SLO калыбына келтирүү ырастоо.
6. Post-Incident Review (RCA): 24-72 саат, айыпсыз, action items.
- сынган/ким таасир эткен (аймак/тенант/канал)
- Качан башталган/SEV
- Убактылуу чаралар (mitigation)
- Кийинки статус жаңыртуу N мүнөт
- Байланыш (Инцидент-менеджер)
9) iGaming өзгөчөлүктөрү: "оору" зоналары жана Алерт
Payments/TTW: PSP Таймауттардын үлүшү, TTW p95> 3m код боюнча мүчүлүштүктөрдүн өсүшү.
Турнирлердин чокулары: p99 API/оюндарды баштоо убактысы/queue lag; лимиттерди/авто-скейлди пропагандалоо.
Акча каражаттарын алуу: SLA backofis/кол менен текшерүү, өлкөлөр боюнча лимиттер.
Оюн провайдерлери: студиялар боюнча жеткиликтүүлүк, сессияны баштоо убактысы, учуруулардын төмөндөшү.
RG/Compliance: узакка созулган сессиялар/" dogon" жарылып, босоголордун ашуусу - пейдж эмес, билет + RG командасына эскертүү.
10) Эрежелердин үлгүлөрү (кошумча)
Жогорку жашыруун p95 (API)
promql alert: HighLatencyP95 expr: histogram_quantile(0. 95,
sum by (le, service) (rate(http_request_duration_seconds_bucket{service="api"}[5m]))) > 0. 25 for: 10m labels: { severity: "page", service: "api" }
annotations:
summary: "p95 latency > 250ms"
runbook: "https://runbooks/api/latency"
Корутундулардын кезеги "күйүп жатат"
promql alert: WithdrawalsQueueLag expr: max_over_time(queue_lag_seconds{queue="withdrawals"}[10m]) > 300 for: 10m labels: { severity: "page", service: "payments-worker" }
annotations:
summary: "Withdrawals lag >5m"
runbook: "https://runbooks/payments/queue"
Төлөмдөрдү конвертациялоо
promql alert: PaymentConversionDrop expr:
(sum(rate(payments_success_total[15m])) / sum(rate(payments_attempt_total[15m])))
< (payment_conv_baseline - 0. 003)
for: 20m labels: { severity: "page", domain: "payments" }
annotations:
summary: "Payment conversion below baseline -0. 3%"
runbook: "https://runbooks/payments/conversion"
11) ChatOps жана автоматташтыруу
иш-баскычтары менен Auto Posting Alert: Stop canary, Rollback, Scale + N.
Команда кыскартуулар: '/incident start ', '/status update', '/call
Боттор контекстти тартат: акыркы деплойлор, көз карандылык графалары, трейс-мисалдар (exemplars), байланышкан билеттер.
12) Пост-окуя иш (RCA)
Фактылар: таймлайн, көргөн/аракет кылган, иштеген.
Root cause: техникалык жана уюштуруу себептери.
Detections & Defenses: кандай сигналдар жардам берди/алып.
Action items: конкреттүү тапшырмалар (SLO/алерттер/коддор/лимиттер/тесттер/рунабук).
Due dates & owners: мөөнөттөрү жана жоопкерчиликтүү; follow-up сессиясы 2-4 жумадан кийин.
13) Киргизүү чек-тизмеси
1. Негизги агымдар үчүн SLI/SLO аныктаңыз (API/Payments/Games/TTW).
2. recording rules жана multi-burn alerty + Alertmanager багытын орнотуу.
3. Айлануу, SLO реакциялар жана эскалациялар менен on-call киргизиңиз.
4. Runbooks жана ChatOps командаларына алерттерди байлаңыз.
5. Басуу/тынч терезелерди, релиздердин/иштердин аннотацияларын тууралоо.
6. көнүгүү жана оюн-күнү Script (PSP кулашы, өсүш p99, өсүш queue lag).
7. Alert Quality өлчөө: MTTA/MTTR,% noisy/false, SLO боюнча coverage.
8. Үзгүлтүксүз RCA жана босого/жараяндарды кайра карап чыгуу.
9. Бизнес/саппорт менен статус-коммуникацияларды киргизиңиз (шаблондор).
10. Баарын код катары документтештириңиз: эрежелер, каттамдар, рунабук шилтемелери.
14) Анти-үлгүлөрү
Alerting "ар бир метрика" → alert-fetig, ignor.
Жок SLO → "норма" жана "күйүп" түшүнүксүз.
Жок басуу/ингибиция → көчкү дубликат.
Пейдж кичинекей окуялар үчүн түнү (SEV Impact менен салыштырууга болбойт).
Runbook/ээси жок Алерта.
"Кол" иш-аракеттер жок ChatOps/аудит.
Жок RCA/Action items → окуяларды кайталоо.
Натыйжалары
Алертинг жана жооп берүү - бул эрежелердин жыйындысы эмес, процесс. SLOну multi-burn-alerts менен байланыштырыңыз, ачык-айкын on-call-эскалациясын куруңуз, ChatOps жана тирүү Runabuk-ди кошуңуз, RCA жана машыгууларды үзгүлтүксүз өткөрүңүз. Анда окуялар азыраак, кыска жана арзан болот, ал эми релиздер iGaming ысык сааттарда да алдын ала айтууга болот.