GH GambleHub

Alertinq və uğursuzluqlara cavab

(Bölmə: Texnologiya və Infrastruktur)

Qısa xülasə

Güclü alertinq yalnız «qırmızı metrika» deyil, istifadəçi dəyərinin pozulmasının siqnalıdır. iGaming üçün SLO geytaları (gizlilik, əlçatanlıq, ödəniş çevirmə, vaxt-to-Wallet), multi-burn qaydaları, on-call, eskalasiya, ChatOps və runbooks rolları vacibdir. Məqsəd sapmanı tez görmək, düzəldə bilənlərə məlumat vermək və növbəti dəfə daha sürətli və daha ucuz reaksiya vermək üçün bilikləri düzəltməkdir.

1) Əsaslar: metrikdən hərəkətə

SLI → SLO → Alert: ölçülə bilən keyfiyyət → hədəf səviyyəsi → şərtlər «büdcə yanır».
Severity (SEV): SEV1 - kritik (gəlir/GGR təhlükə altında), SEV2 - ciddi, SEV3 - mülayim, SEV4 - kiçik.
Impact/Urgency: kim əziyyət çəkir (bütün/region/tenant/kanal) və nə qədər təcili (TTW ↑, p99 ↑, error-rate ↑).
Actionability: Hər həyəcan - xüsusi hərəkət (runbook + sahibi).

2) Siqnalların taksonomiyası

ТехSLO: p95/p99 latency API, error-rate, saturation (CPU/IO/GPU), queue lag.
BusinessSLO: ödənişlərin konvertasiyası (attempt → success), Time-to-Wallet (TTW), bahislərin müvəffəqiyyəti, oyunların başlaması.
Ödəniş marşrutları: PSP-spesifik metriklər (timeout/decline spikes).
Ön/mobil: RUM-metrika (LCP/INP), qəza-rate, sintetik ssenarilər (giriş/depozit/dərəcə/çıxarış).

3) Alertinq siyasəti: SLO və burn-rate

SLI/SLO nümunələri

Mövcudluq 'payments-api' ≥ 99. 9% / 30d p95 `/deposit` ≤ 250 ms / 30d

Dönüşüm 'payments _ attempt → success' ≥ baseline − 0. 3% / 24h

TTW p95 ≤ 3 dəq/24h

Multi-window / Multi-burn (идея PromQL)

Fast burn: SLO-nun pozulması normadan 5-10 × daha sürətli (5-15 dəq ərzində alert page).
Slow burn: büdcənin yavaş tükənməsi (bilet + 1-3 saat ərzində analiz).

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) Səs-küy azaldılması və siqnalların keyfiyyəti

Doğru həqiqət mənbəyi: ağır «xam» ifadələrlə deyil, aqreqatlara (recording rules) görə alertasiya.
Deduplication: Alertmanager qruplaşdırır 'service/region/severity'.
Hiyerarxiya: əvvəlcə biznes/SLI-də, aşağıda - diaqnostika kimi texnometrika.
Supressiya: planned-maintenance/reliz (annotasiyalar) zamanı, upstream hadisələri zamanı.
Kardinallıq: Alert etiketlərində 'user _ id/session _ id' istifadə etməyin.
Test həyəcanları: müntəzəm «təlim» triggerləri (kanalların, rolların, runabuk linklərinin yoxlanılması).

5) Alertmanager: marşrutlaşdırma və eskalasiya

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" ]

Fikir: SEV = page → PagerDuty/SMS; qalan - Slack/bilet. İnhibisiya daha yüksək aktiv SEV-də aşağı səviyyələrin «səs-küyünü» yatırır.

6) Grafana Alerting (əlavə təbəqə kimi)

Mərkəzləşdirilmiş Alert rules dashboard (Prometheus/Loki/Cloud).
Contact points: PagerDuty/Slack/Email, Notification policies per folder.
Silences: planlı işlər, miqrasiyalar, buraxılışlar.
Snapshots avto ekran paneli ilə bir bilet.

7) On-call və «canlı» proseslər

Rotasiya: 1-ci xətt (SRE/platforma), 2-ci xətt (xidmət sahibi), 3-cü (DB/Payments/Sec).
SLA reaksiyalar: tanınması ≤ 5 dəq (SEV1), diaqnostika ≤ 15 dəq, rabitə hər 15-30 dəq.
Növbətçi kanallar: '#incident -warroom', '#status -updates' (yalnız faktlar).
Runbooks: link hər alert + sürətli ChatOps komandaları ('/rollback ', '/freeze', '/scale ').
Təlim həyəcanları: aylıq (insanları, kanalları, runabuk-aktuallığını yoxlamaq).

8) Hadisələr: həyat dövrü

1. Detekt (alert/report/sintetika) → Acknowledge on-call.
2. Triaj: SEV müəyyən/təsir/hipotez, açıq war-room.
3. Stabilizasiya: rulbuk/geri/miqyaslı/fiziki.
4. Rabitə: status şablonu (aşağıya bax), ETA/aşağıdakı addımlar.
5. Bağlanması: SLO bərpa təsdiqi.
6. Post-Incident Review (RCA): 24-72 saat sonra, ittiham olmadan, action items.

Status şablonu (qısa):
  • Nə qırıldı/kimə təsir etdi (region/tenant/kanal)
  • Nə zaman başladı/SEV
  • Müvəqqəti tədbirlər (mitigation)
  • Növbəti status yenilənməsi N dəqiqə sonra
  • Əlaqə (Hadisə meneceri)

9) iGaming xüsusiyyətləri: «ağrılı» zonalar və alertlər

Payments/TTW: PSP vaxtlarının payı, kod arızalarının artması, TTW p95> 3m.
Turnirlərin zirvələri: p99 API/oyun başlama vaxtı/queue lag; limitlərin təbliğatı/avto skayl.
Vəsaitlərin çıxarılması: SLA backofis/əl yoxlamaları, ölkələr üzrə limitlər.
Oyun provayderləri: studiya əlçatanlığı, sessiyanın başlanğıc vaxtı, buraxılışların düşməsi.
RG/Compliance: uzun sessiyalar/» doqon» sıçrayışları, həddi aşmaq - peyc deyil, bilet + RG komandasına bildiriş.

10) Qaydaların nümunələri (əlavə)

Yüksək gecikmə 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"

Nəticə növbəsi «yanır»

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"

Ödənişlərin çevirilməsi dayandırıldı

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 və avtomatlaşdırma

Stop canary, Rollback, Scale + N.

Komanda ixtisarları: '/incident start ', '/status update', '/call ', '/grafana '

Botlar konteksti gücləndirir: son deploes, asılılıq qrafiki, treys nümunələri (exemplars), əlaqəli biletlər.

12) Post-insident işi (RCA)

Faktlar: gördüyünüz/sınadığınız, nə işlədiyiniz.
Root cause: texniki və təşkilati səbəbləri.
Detections & Defenses: hansı siqnallar kömək/uğursuz.
Action items: konkret tapşırıqlar (SLO/alertlər/kodlar/limitlər/testlər/runabook).
Due dates & owners: vaxt və məsuliyyətli; follow-up-seans 2-4 həftə sonra.

13) Giriş çek siyahısı

1. Əsas axınlar üçün SLI/SLO (API/Payments/Games/TTW) təyin edin.
2. recording rules və multi-burn alerts + Alertmanager marşrutlaşdırma konfiqurasiya.
3. Rotasiya, SLO reaksiyaları və eskalasiyaları ilə on-call daxil edin.
4. Runbooks və ChatOps komandalarına alertlər bağlayın.
5. Sıxışdırma/səssiz pəncərələri, relizlərin/işlərin izahlarını konfiqurasiya edin.
6. Təlim həyəcan və game-day script edin (PSP düşməsi, p99 böyüməsi, queue lag böyüməsi).
7. Alert Quality ölçün: MTTA/MTTR,% noisy/false, SLO coverage.
8. Müntəzəm RCA və eşik/proseslərin yenidən baxılması.
9. Biznes/sapport (şablonlar) ilə status-kommunikasiya daxil edin.
10. Hər şeyi kod kimi sənədləşdirin: qaydalar, marşrutlar, runabuk linkləri.

14) Anti-nümunələr

«Hər metrika» üzrə alertinq → alert-fetiq, ignor.
No SLO → «norma» və «yanan» nə aydın deyil.
Depressiya/inhibisiyanın olmaması → dublikatların uçması.
Page gecə kiçik hadisələr üçün (SEV Impact ilə müqayisə edilə bilməz).
Runbook/sahibi olmadan alertlər.
ChatOps/audit olmadan «əl» hərəkətləri.
RCA/Action items → hadisələrin təkrarı yoxdur.

Nəticələr

Alertinq və reaksiya qaydalar toplusu deyil, bir prosesdir. SLO-nu multi-burn-alertlərlə əlaqələndirin, aydın on-call-eskalasiya qurun, ChatOps və canlı Runabook-i əlavə edin, müntəzəm olaraq RCA və təlim-məşq edin. Sonra hadisələr daha az, daha qısa və daha ucuz olacaq və buraxılışlar hətta isti iGaming saatlarında proqnozlaşdırıla bilər.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.