GH GambleHub

Алертинг және ақауларға ден қою

(Бөлім: Технологиялар және Инфрақұрылым)

Қысқаша түйіндеме

Күшті алертинг - бұл жай ғана «қызыл метрика» емес, пайдаланушының құндылығын бұзу туралы сигнал. iGaming үшін SLO-гейттер (жасырындылық, қолжетімділік, төлем конверсиясы, Time-to-Wallet), 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.
БизнесSLO: төлем конверсиясы (attempt → success), Time-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: SLO бұзылуы нормадан 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).
Дедупликация: Alertmanager 'service/region/severity' бойынша топтайды.
Иерархия: алдымен бизнес/SLI, төменде - диагностика ретінде техметрика.
Супрессия: planned-maintenance/reliz (аннотация) кезінде, 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 (қосымша қабат ретінде)

Орталықтандырылған Alert rules дашбордтарда (Prometheus/Loki/Cloud).
Contact points: PagerDuty/Slack/Email, Notification policies per folder.
Silences: жоспарлы жұмыстар, көшіру, релиздер.
Панельдің автоскриншоты бар Snapshots.

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. Триаж: SEV/қозғалған/гипотезаны анықтау, war-room ашу.
3. Тұрақтандыру: рулбуктар/кері шегіну/масштабтау/фичефлагтар.
4. Коммуникациялар: мәртебе үлгісі (төменде қараңыз), ETA/келесі қадамдар.
5. Жабу: SLO қалпына келтірілгенін растау.
6. Post-Incident Review (RCA): 24-72 сағаттан кейін, айыптаусыз, action items.

Мәртебе үлгісі (қысқа):
  • Не бұзылды/кім қозғады (өңір/тенант/арна)
  • Қашан басталды/SEV
  • Уақытша шаралар (mitigation)
  • Келесі мәртебені N минуттан кейін жаңарту
  • Контакт (Оқиға менеджері)

9) iGaming ерекшелігі: «ауырсыну» аймақтары мен аллергиялар

Payments/TTW: PSP таймауттар үлесі, TTW p95> 3м код бойынша істен шығу өсімі.
Жарыстардың шыңдары: p99 API/ойын бастау уақыты/queue lag; лимиттерді/авто-скейлді насихаттау.
Қаражаттың қорытындылары: бэкофистің/қолмен тексерудің SLA, елдер бойынша лимиттер.
Ойын провайдерлері: студиялар бойынша қолжетімділік, сессияны бастау уақыты, ұшырулардың құлдырауы.
RG/Compliance: ұзақ сессиялардың/» догонның» жарылысы, шектен асуы - пейдж емес, тикет + 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 және автоматтандыру

Stop canary, Rollback, Scale + N.

Команда қысқартулары: '/incident start ', '/status update', '/call ', '/grafana '

Боттар контекст тартады: соңғы деплоилер, тәуелділік бағандары, трейс-мысалдар (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 алаңдарын + Alertmanager маршрутизациясын теңшеңіз.
3. Ротациямен, SLO реакциялармен және эскалациялармен on-call енгізіңіз.
4. Runbooks және ChatOps командаларына алерттерді байлаңыз.
5. Басу/тыныш терезелерді, релиздер/жұмыстар аңдатпаларын теңшеңіз.
6. Жаттығу дабылдары мен game-day сценарийлерін жасаңыз (PSP құлдырауы, p99 өсуі, queue lag өсуі).
7. Alert Quality: MTTA/MTTR,% noisy/false, SLO бойынша coverage өлшеңіз.
8. Тұрақты RCA және шектерді/процестерді қайта қарау.
9. Бизнеспен/саппортпен байланыс мәртебесін енгізіңіз (үлгілер).
10. Бәрін код ретінде құжаттаңыз: ережелер, бағыттар, рунабук-сілтемелер.

14) Қарсы үлгілер

«Әр метрика» бойынша алертинг → алерт-фэтиг, игнор.
SLO → жоқ, «норманың» не екені және «жанып жатқаны» түсініксіз.
Басудың/ингибицияның болмауы → телнұсқалардың көшкіні.
Пейдж түнде шағын оқиғалар үшін (SEV Impact-пен салыстыруға келмейді).
Runbook/иесі жоқ алерталар.
ChatOps/аудитсіз «қол» әрекеттері.
RCA/Action items → оқиғаларды қайталау жоқ.

Алертинг және ден қою - бұл ережелер жинағы емес, процесс. SLO-ны multi-burn-алерталарымен байланыстырыңыз, айқын on-call-эскалация жасаңыз, ChatOps және тірі рунабук-и қосыңыз, RCA мен жаттығуларды үнемі жүргізіңіз. Сонда оқиғалар азырақ, қысқа және арзан болады, ал релиздер тіпті iGaming ыстық сағаттарында да болжамды болады.

Contact

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

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

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

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

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

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