GH GambleHub

Siqnallar və bildirişlər sistemi

1) Rolu və məqsədləri

Siqnallar sistemi «mesajların göndərilməsi» deyil, qərarların qəbulu konturudur: vaxtında sapmaları vurğulayır, hərəkətləri təklif edir və vaxtında və sükut arasında tarazlığı saxlayır.

Məqsədlər:
  • MTTD/MTTR prioritetləşdirilməsi və aydın playbook ilə aşağı.
  • Səs-küy azaldılması ilə alert fatigue (xəbərdarlıq yorğunluğu) azaldır.
  • Bildirişdən birbaşa hərəkət verin (ack, snooze, runbook, avto yardım).
  • Gizlilik və razılığa riayət edin (opt-in/opt-out, log saxlama).

2) Hadisələrin taksonomiyası və səviyyələri

2. 1 Hadisə növləri

Metrika/anomaliyalar (SRE, məhsul, maliyyə).
Biznes qaydaları (limitlər, frod, KYC, ödənişlər).
Sistemli (deploy, deqradasiya, lisenziyalar).
Xüsusi (davranış triggers, RG/məsul oyun).

2. 2 Əhəmiyyət səviyyələri (Severity)

Kritik - dərhal reaksiya, itki/təhlükəsizlik riski.
Yüksək - KPI/SLO-nun əhəmiyyətli pisləşməsi.
Orta - iş saatlarında fəaliyyət tələb olunur.
Low/Info - müşahidə/kontekst, digestlərdə avtomatik yığma.

2. 3 Priority

Matrix 'Impact × Urgency' → P1..P4. Kanal bağlama və SLA reaksiya.

3) Memarlıq və axınlar

Siqnal istehsalçıları → Hadisə Şinası → Normallaşma (enrich, dedup) → Korrelyasiya → Qaydalar (policy engine) → Marşrutlaşdırma → Çatdırılma Kanalları → Üstünlük Mərkəzi → Qeydlər/Analitika.

Əsas komponentlər:
  • Enricher: tenant, rol, region, playbook linkləri əlavə edir.
  • Deduper: təkrarlanan hadisələri açar ilə qruplaşdırın.
  • Correlator: hadisə əlaqədar siqnalları yapışdırmaq.
  • Policy Engine: YAML/DSL qaydaları, quiet saatları, eskalasiya.
  • Delivery: in-app, email, push, SMS, webhook, chat inteqrasiya.

4) Qaydalar və siyasət (YAML nümunəsi)

yaml policies:
- id: p_sre_critical match: { domain: "infra", severity: "critical" }
route:
primary: { channel: "pager", targets: ["oncall_sre"] }
fallback: { channel: "sms", delay: "2m" }
suppress:
flapping: {window: "10m," threshold: 5} # suppressing frequent twitching duplicates: {key: ["service, ""cluster,"" error _ code"], ttl: "15m"}
escalate:
after: "10m"
to: ["sre_manager"]
auto_assign: true
- id: p_product_medium match: { domain: "product", severity: "medium", kpi: "conversion" }
route:
primary: { channel: "inapp", audience: "product_owners" }
digest:
window: "1h"
max_items: 10 quiet_hours:
tz: "Europe/Kyiv"
ranges: ["22: 00-07: 00"] # only P1 digests/pager at this time

5) Deduplikasiya, korrelyasiya, flappinqin yatırılması

Dedup: qrup identifikatoru 'dedup _ key = hash (service' metric 'dim)'; TTL ≥ flapping pəncərəsi.
Korrelyasiya: Topologiya (xidmət → asılılıq), vaxt (± N min) və kontekstə (buraxılış, hadisə) bağlı siqnalları birləşdirin.
Flapping: «M dəqiqədə N hadisələri» həddi → histerezis və ya suppress qaldırmaq təklifi ilə bir «flapping detected» siqnalı.

6) Marşrutlaşdırma və RACI

Responsible: kim ilk bildiriş/tusk alır.
Accountable: SLA sonra eskalasiya kim.
Consulted: tred/chat kanalında kimə istinad etmək olar.
Informed: digest/nəticələr kimə gedəcək.
Rola və kontekstə görə təyin edin (tenant, region, məhsul axını).

7) Çatdırılma kanalları və nüanslar

KanalNə zaman istifadə olunurXüsusiyyətlər/məhdudiyyətlər
In-appOperativ, lakin kritik deyil; fəaliyyətZəngin UI, CTA, kontekst
EmailDigestlər, hesabatlar, tənqidi olmayanItirilə/süzülə bilər
PushMobil növbətçi komanda üçünUzunluq məhdudiyyəti, sakit saat
SMS/PagerP1/P0 tənqidÖdənişli, qısa, heç bir investisiya
Webhookİnteqrasiya (Jira, Slack, Ops)HMAC imzaları, retraj, idempotentlik
Chat (Slack)Hadisə tredi, əməkdaşlıqMətn əmrləri (ack, assign)

Retrailer: 5xx/429/time → backoff + jitter; 'Retry-After' hörmət. İdempotentlik: vebhuklarda 'X-Notification-Id'.

8) Üstünlük Mərkəzi (Preferences Center)

Hadisə növlərinə, səviyyələrə, kanallara görə Opt-in/Opt-out.
Sükut cədvəli (quiet hours), 15/30/60 dəq əl snooze.
Eşik/həssaslıq (məsələn, anomaliya ≥ 3 σ).
Dil/lokal, vaxt/valyuta formatı.
Rollara bağlama: SRE/Product/Finance üçün presetlər.
Şəffaflıq: istifadəçinin niyə siqnal aldığını göstərmək (qaydaya keçid).

9) Məzmun dizaynı: mesaj strukturu

Kritik siqnal üçün şablon (P1):
  • Başlıq: qısa, tetikleyici ilə: «[P1] [PSP _ TR] 3DS uğursuzluqlarının kəskin artması (+ 12%)».
  • Kontekst: dövr, təsirlənmiş seqmentlər/region, məlumat mənbəyi.
  • Səbəb/fərziyyə: «18:20 UTC PSP_X buraxılışı ilə bağlıdır».
  • SLA/son tarix: «10 dəqiqədən sonra eskalasiya».
  • CTA: "playbook aç", "fallback aktiv PSP_Y", "Ack (30 dəq)".
  • Linklər: qrafik, hadisə-tred, metrika, runbook.
  • Metadata: 'trace _ id', 'incident _ id', 'dedup _ key'.

Ton: dram olmadan faktlar; ədədlər və ölçü vahidləri; şifrəni açmadan qısaltmalardan çəkinin.
Lokalizasiya: dəyişənlər → playsholderlər, köçürmələr resurslarda saxlanılır; ədədlər/tarixlər - lokal olaraq.

10) Bildirişlərdən hərəkətlər (Actionable)

Ack/Snooze vaxt parametrləri ilə.
Assign/Invite hadisə tred.
Runbook: kontekstin avtomatik doldurulması ilə həll addımları açmaq.
One-click remediation (təhlükəsiz yerdə): marşrutu dəyişdirin, limiti qaldırın, jobu yenidən başlatın (təsdiq və audit ilə).
Avtomatik doldurma ilə bilet (Jira/GitHub) yarat.

11) Siqnalların keyfiyyəti: metriklər və hədəflər

Precision (göndərilənlər arasında müvafiq pay) ≥ P1/P2 üçün 80%.
Recall (bütün hadisələr arasında aşkar payı) ≥ 70%.
Noise: istifadəçi üçün orta siqnallar/saat (hədəf tavan).
Ack-time p50/p95, Escalation rate, Snooze rate (səs-küy indikatoru kimi).
MTTD/MTTA/MTTR (domen və kanallar kontekstində).
Silenced-but-should-alert (qaydalara görə boşluqlar) - ayrıca dashboard.

12) Səs-küy idarəetmə: fəndlər

Histerezis və eşik üçün «sürüşmə pəncərələri».
Deteksiyadan əvvəl hamarlama (EWMA).
Aqreqasiya: 30 kiçik əvəzinə - top kontributorlarla bir batch/digest.
Kontekst limitləri: N-dən çox olmayan bildirişlər/saat/kanal/istifadəçi.
Avtomatik geribildirim: Əgər istifadəçi ardıcıl olaraq 3 × Snooze düyməsini basarsa → həddi artırmağı/kanalı dəyişdirməyi təklif edir.

13) Təhlükəsizlik, gizlilik, uyğunluq

Webhook üçün HMAC imzası, sirlərin rotasiyası, 'X-Key-Id'.
RBAC/ABAC: rollar/tenantlar üzrə siqnalların görünürlüyü.
PII-minimallaşdırma, log maskaları, fəaliyyət auditi (ack/assign/runbook).
Razılıq (consent) və bildiriş səbəbləri (qayda/siyasət) - payload.
Retention/TTL bildiriş log, Hadisələrin qanuni Hold.

14) Sxemlər və payload '

Hadisə (daxili)

json
{
"id": "sig_01HX",
"domain": "payments",
"severity": "high",
"priority": "P2",
"title": "The 3DS failure graph has grown to 8. 2% (+3. 1 pp), "
"occurred_at": "2025-11-03T17:55:00Z",
"context": { "psp": "PSP_X", "country": "TR", "release_id": "rel_241103_1820" },
"metrics": { "baseline": 5. 1, "current": 8. 2, "delta_pp": 3. 1 },
"dedup_key": "payments    PSP_X    TR    3DS_FAILURE",
"runbook": "rbk_psp_3ds_spike",
"slo": { "ack_deadline_sec": 600 }
}

Bildiriş (aqnostik kanal)

json
{
"notification_id": "ntf_91ab",
"signal_id": "sig_01HX",
"targets": ["oncall_payments"],
"channels": ["inapp","slack","webhook"],
"cta": [
{"id": "ack," "label": "Confirm (30 min)," "payload": {"ttl ":" 30m"}},
{"id": "runbook," "label": "Open playbook," "payload": {"id ": "rbk _ psp _ 3ds _ spike"}},
{"id": "fallback," "label": "Enable fallback, PSP_Y" "confirm": true}
],
"hmac": "sha256=AbCd..."
}

15) Məhsulda UX nümunələri

İnbox: Kritik/High/Other sekmələri, sayı nişanları.
Hadisə lenti: əlaqəli siqnallar, hərəkət zamanı, «nə edildi».
Filtrlər: rol, domen, region, vaxt, «yalnız cavabsız».
Siyahıda sürətli hərəkətlər (ack/snooze/assign).
Explain: «Niyə bunu görürsünüz» (qayda, eşik, məlumat).
Digestlər: TZ ilə lokallaşdırılmış səhər/axşam.

16) Test planı

Unit: dedup açarları, histerezis, flapping, payload serializasiyası.
Integration: marşrutlaşdırma, quiet hours, eskalasiya, kanal retrası.
E2E: anomaliyadan biletin bağlanmasına qədər P1 ssenarisi; P2 quiet hours → digest.
Chaos: kanal itkisi (SMTP/SMS), gecikmələr, uçqun siqnalları, clock-skew.
A11y/i18n: screen-readers, klaviatura ack/snooze, nömrələrin/tarixlərin lokalizasiyası.

17) Dashbord keyfiyyəti

Domenlər üzrə Precision/Recall.
Ack time p50/p95 və vaxtında təsdiqlənmiş pay.
Noise per user/hour və top səs-küylü qaydalar.
Escalation rate və «saxta eskalasiya».
Suppressed vs Delivered (nə qədər sıxışdırılmış/dejest daxil edilmişdir).
User feedback :/mesajlar, səs-küy şərhləri.

18) Çek vərəqləri

Dizayn

  • Hadisələrin taksonomiyası və səviyyələri razılaşdırılmışdır
  • quiet hours/eskalasiya siyasəti təsvir
  • Dedup/korrelyasiya/fapping xüsusi
  • Kanallar, retrajlar, vebhukların idempotantlığı
  • Üstünlük Mərkəzi (opt-in/out, snooze)
  • Məzmun şablonları və lokalizasiya
  • Playbook və one-click fəaliyyət (audit ilə)
  • Keyfiyyət metrləri və daşbordlar

Əməliyyat

  • Rübdə bir dəfə eşik optimizasiyası
  • A/B qaydaları (eşik, pəncərə, digest)
  • Müntəzəm «Top səs-küy» və CAPA rəyləri
  • Kanal sirlərinin rotasiyası (HMAC, SMTP, SMS)
  • Siqnalizasiya testi (game days)

19) Tətbiq planı (3 iterasiya)

İterasiya 1 - Əsas kontur (2-3 həftə)

Taksonomiya, severity/priority, üstünlük mərkəzi (in-app + email).
Dedup, sadə açar/vaxt korrelyasiyası, quiet hours.
Mesaj şablonları, playbook, ack/snooze/assign.

İterasiya 2 - Etibarlılıq və səs-küyün azaldılması (3-4 həftə)

Flapping/histerezis, digestlər, chat inteqrasiyaları və vebhuklar (HMAC, retrailer).
SLA eskalasiyası, keyfiyyət daşbordları (precision/recall, noise).
One-click remediation (təsdiq və audit ilə).

İterasiya 3 - Optimallaşdırma və miqyas (davamlı)

Topologiya/relizlər üzrə korrelyasiya, astanaların avtomatik təklifləri.
A/B qaydaları, «eşik nə vaxt işləyir» proqnozu.
Səs-küy rəyləri və müntəzəm oyun günləri.

20) Mini-FAQ

Alert fatigue ilə necə mübarizə aparmaq olar?
Dedup, korrelyasiya, histerezis, digestlər və üstünlük mərkəzləri + müntəzəm səs-küy və A/B eşik icmalları.

Anomaliyalar üçün ML lazımdır?
Faydalıdır, lakin müəyyən edilmiş qaydalarla və izah edilə bilən hədlərlə başlayın. ML - Explain ilə bir əlavə kimi.

Niyə istifadəçilər «əlavə» məktublar alırlar?
Qaydaların matçlarını yoxlayın, quiet hours, «niyə çatdırıldı» auditini, kanal/saat limitlərini və Digest 'ləri seçin.

Yekun

Güclü siqnal sistemi ağıllı filtrasiya və düzgün prioritetləşdirmə + bir kliklə hərəkətlərdir. Taksonomiya və siyasətləri rəsmiləşdirin, dedup/korrelyasiya/histerezis tətbiq edin, istifadəçilərə nəzarət verin (preferences, snooze), etibarlı çatdırılma və şəffaflığı təmin edin «niyə aldım». Sonra siqnallar səs-küy mənbəyi deyil, idarəetmə alətinə çevriləcəkdir.

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.