Signallar va bildirishnomalar tizimi
1) Roli va maqsadlari
Signallar tizimi «xabarlarni yuborish» emas, balki qaror qabul qilish konturidir: u o’z vaqtida og’ishlarni yoritadi, harakatlarni taklif qiladi va o’z vaqtida va sukut o’rtasida muvozanatni saqlaydi.
Maqsadlar:- MTTD/MTTRni ustuvorlik va aniq pleybuklar hisobiga kamaytirish.
- Shovqinni kamaytirish orqali alert fatigue (ogohlantirishlardan charchoq) ni kamaytirish.
- Xabarnomadan toʻgʻridan-toʻgʻri harakat berish (ack, snooze, runbook, avtomatik yordam).
- Maxfiylik va rozilikka rioya qilish (opt-in/opt-out, logni saqlash).
2) Voqealar taksonomiyasi va darajalari
2. 1 Voqealar turlari
Metrika/anomaliyalar (SRE, mahsulot, moliya).
Biznes-qoidalar (limitlar, frod, KYC, to’lovlar).
Tizimli (deploy, degradatsiya, litsenziya).
Foydalanuvchilar (xulq-atvor triggerlari, RG/mas’uliyatli o’yin).
2. 2 Ahamiyat darajasi (Severity)
Critical - darhol javob, yo’qotish/xavfsizlik xavfi.
High - KPI/SLOning sezilarli darajada yomonlashuvi.
Medium - ish vaqtidagi harakatlar talab etiladi.
Low/Info - kuzatish/kontekst, digestlarga avto-yig’ish.
2. 3 Ustuvorlik (Priority)
«Impact × Urgency» matritsasi → P1..P4. Kanallar va SLA reaksiyalarini bogʻlash.
3) Arxitektura va oqimlar
Signal ishlab chiqaruvchilar → Voqealar shinasi → Normallashtirish (enrich, dedup) → Korrelyatsiya → Qoidalar (policy engine) → Marshrutizatsiya → Yetkazib berish kanallari → Imtiyozlar markazi → Logi/analitika.
Asosiy komponentlar:- Enricher: tenant, rol, mintaqa, pleybuklarga havolalarni qoʻshadi.
- Deduper: takrorlanadigan voqealarni kalitga qarab guruhlash.
- Correlator: hodisaga tegishli signallarni yopishtirish.
- Policy Engine: YAML/DSL qoidalari, quiet hours, eskalatsiyalar.
- Delivery: in-app, email, push, SMS, webhook, chat integratsiyalari.
4) Qoidalar va siyosat (YAML misoli)
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) Dekuplikatsiya, korrelyatsiya, flappingni bostirish
Dedup: guruh identifikatori’dedup _ key = hash (service’metric’dim)’; TTL ≥ flapping oynasi.
Korrelyatsiya: topologiya (servis → qaramlik), vaqt (± N min) va kontekstga (reliz, hodisa) bog’liq signallarni birlashtiring.
Flapping: «M daqiqada N hodisalar» chegarasi → «flapping detected» bitta signal bilan gisterezis yoki suppress ko’tarish.
6) Yo’naltirish va RACI
Responsible: birinchi xabarni kim oladi?
Accountable: SLA dan keyin kim kuchayadi.
Consulted: tred/chat kanalida kim haqida gapirish kerak.
Informed: digest/natijalar kimga ketadi.
Rolga va kontekstga ko’ra tayinlang (tenant, mintaqa, mahsulot oqimi).
7) Yetkazib berish kanallari va nuanslar
Retry: 5xx/429/taymaut → backoff + jitter;’Retry-After’ni hurmat qilish. Idempotentlik:’X-Notification-Id’vebxuklarda.
8) Imtiyozlar markazi (Preferences Center)
Opt-in/Opt-out hodisa turlari, darajalar, kanallar boʻyicha.
Sukunat jadvali (quiet hours), 15/30/60 daqiqaga qo’lda snooze.
Chegara/sezgirlik (masalan, anomaliya ≥ 3 σ).
Til/lokal, vaqt/valyuta formati.
Rollarga bogʻlash: SRE/Product/Finance uchun presetlar.
Shaffoflik: foydalanuvchi nima uchun signal olganini koʻrsatish (qoidaga havola).
9) Kontent-dizayn: xabar tuzilishi
Kritik signal namunasi (P1):- Sarlavha: qisqacha, trigger bilan: «[P1] [PSP _ TR] 3DS nosozliklarining keskin o’sishi (+ 12%)».
- Kontekst: davr, ta’sirlangan segmentlar/mintaqa, ma’lumotlar manbai.
- Sababi/faraz: «18:20 UTC PSP_X chiqarilishi bilan bog’liq».
- SLA/muddat: «10 daqiqadan so’ng eskalatsiya».
- CTA: "Pleybukni ochish", "Fallback yoqish PSP_Y", "Ack (30 daqiqa)".
- Havolalar: grafik, hodisa-tred, metrika, runbook.
- Meta maʼlumotlar:’trace _ id’,’incident _ id’,’dedup _ key’.
Ton: faktlar, dramatizatsiya qilmasdan; son va o’lchov birliklari; shifrsiz qisqartmalardan qochish.
Lokalizatsiya: o’zgaruvchan → pleysholderlar, tarjimalar resurslarda saqlanadi; sanalar/sanalar - lokal bo’yicha.
10) Xabarnoma harakatlari (Actionable)
Vaqt parametrlari bilan Ack/Snooze.
Assign/Invite hodisa trediga.
Runbook: kontekstni avtomatik toʻldirish bilan yechim qadamlarini ochish.
One-click remediation (xavfsiz joyda): yo’nalishni o’zgartirish, limitni ko’tarish, jobni qayta ishga tushirish (tasdiqlash va audit bilan).
Avto- toʻldirilgan Jira/GitHub chiptasini yaratish.
11) Signallar sifati: metrika va maqsadlar
Precision (jo’natilganlar orasida relevant ulushi) ≥ P1/P2 uchun 80%.
Recall (barcha hodisalar orasida aniqlangan ulushi) ≥ 70%.
Noise: foydalanuvchiga oʻrtacha soat/signallar (maqsadli shift).
Ack-time p50/p95, Escalation rate, Snooze rate (shovqin indikatori sifatida).
MTTD/MTTA/MTTR (domen va kanallar kesimida).
Silenced-but-should-alert (qoidalar tufayli o’tkazib yuborilgan) - alohida dashbord.
12) Shovqinni boshqarish: usullar
Ostonalar uchun gisterezis va «sirpanuvchi derazalar».
Deteksiya oldidan tekislash (EWMA).
Agregatsiya: 30 ta mayda o’rniga - top-kontribyutorli bitta batch/dajest.
Kontekst limitlar: N dan ortiq bo’lmagan xabarnomalar/soat/kanal/foydalanuvchi.
Avtomatik fikr: agar foydalanuvchi ketma-ket 3 × Snooze bossa → chegarani oshirish/kanalni o’zgartirish taklifini beradi.
13) Xavfsizlik, maxfiylik, komplayens
Vebxuklar uchun HMAC imzosi, sirlarni almashtirish,’X-Key-Id’.
RBAC/ABAC: rollar/tenantlar bo’yicha signallarning ko’rinishi.
PII minimallashtirish, log niqoblari, harakatlar auditi (ack/assign/runbook).
Rozilik (consent) va xabardor qilish sabablari (qoida/siyosat) - payload.
Retention/TTL xabarnoma log’lari, hodisalar bo’yicha Legal Hold.
14) Sxemalar va payload’lar
Hodisa (ichki)
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 }
}
Xabarnoma (agnostik 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) Mahsulotdagi UX-patternlar
Inboxlar: Critical/High/Other tablari, miqdor belgilari.
Hodisa tasmasi: bog’langan signallar, harakat taymline, «nima qilingan».
Filterlar: rol, domen, hudud, vaqt, «faqat javobsiz».
Roʻyxatdagi tezkor harakatlar (ack/snooze/assign).
Explain: «Nima uchun buni koʻryapsiz» (qoida, chegaralar, maʼlumotlar).
Daijestlar: ertalabki/kechki, TZ bo’yicha mahalliylashtirilgan.
16) Test-reja
Unit: dedup-kalitlar, gisterezis, flapping, payload’larni seriallashtirish.
Integration: marshrut, quiet hours, eskalatsiya, kanal retrasi.
E2E: anomaliyadan tiket yopilgunga qadar P1 stsenariysi; P2 quiet hours → digest.
Chaos: kanalni yo’qotish (SMTP/SMS), kechikishlar, ko’chki, clock-skew.
A11y/i18n: screen-readers, klaviatura ack/snooze, sonlar/sanalar lokalizatsiyasi.
17) Sifat dashbordlari
Precision/Recall.
Ack time p50/p95 va o’z vaqtida tasdiqlangan ulushi.
Noise per user/hour va eng shovqinli qoidalar.
Escalation rate va «soxta eskalatsiyalar».
Suppressed vs Delivered (qancha bostirilgan/dajjestga kiritilgan).
User feedback :/xabarlar, shovqin izohlari.
18) Chek varaqlari
Loyihalash
- Voqealar taksonomiyasi va darajalari kelishilgan
- Quiet hours/eskalatsiya siyosati
- Dedup/korrelyatsiya/flapping sozlangan
- Kanallar, retrajlar, vebxuklarning idempotentligi
- Afzalliklar markazi (opt-in/out, snooze)
- Kontent namunalari va lokalizatsiya
- Pleybuklar va one-click harakatlari (audit bilan)
- Sifat metrikasi va dashbordlar
Foydalanish
- Chorakda bir marta chegaraviy optimallashtirish
- A/B qoidalari (chegara, deraza, digest)
- Muntazam «top-shovqin» va CAPA sharhlari
- Kanallar sirlarini almashtirish (HMAC, SMTP, SMS)
- Jadval boʻyicha signal testi (game days)
19) Joriy etish rejasi (3 ta iteratsiya)
Iteratsiya 1 - Bazaviy kontur (2-3 hafta)
Taksonomiya, severity/priority, afzalliklar markazi (in-app + email).
Dedup, oddiy kalit/vaqt korrelyatsiyasi, quiet hours.
Xabar namunalari, pleybuklar, ack/snooze/assign.
Iteratsiya 2 - Ishonchlilik va shovqinni kamaytirish (3-4 hafta)
Flapping/histerezis, digestlar, chat integratsiyalari va vebxuklar (HMAC, retray).
SLA bo’yicha eskalatsiyalar, sifat dashbordlari (precision/recall, noise).
One-click remediation (tasdiqlash va audit bilan).
Iteratsiya 3 - Optimallashtirish va masshtab (uzluksiz)
Topologiya/relizlar bo’yicha korrelyatsiya, chegaralarning avto-takliflari.
A/B qoidalari, «chegara qachon ishga tushadi» prognozi.
Shovqin sharhlari va muntazam game days.
20) Mini-FAQ
Alert fatigue bilan qanday kurashish kerak?
Dedup, korrelyatsiya, gisterezis, digestlar va afzallik markazlari + muntazam shovqin va A/B chegaralarini ko’rib chiqish.
Anomaliyalar uchun ML kerakmi?
Foydali, lekin aniqlangan qoidalar va tushunarli chegaralardan boshlang. ML - qoʻshimcha sifatida, albatta Explain bilan.
Nima uchun foydalanuvchilar «ortiqcha» xatlarni olishadi?
Qoidalar o’yinlari, quiet hours, «nima uchun yetkazib berildi» auditini tekshiring, kanal/soat limitlari va digestlarni moslang.
Jami
Kuchli signal tizimi - bu aqlli filtrlash va to’g’ri ustuvorlik + bir marta bosish. Taksonomiya va siyosatni rasmiylashtiring, dedup/korrelyatsiya/histerezisni joriy qiling, foydalanuvchilarga nazorat (preferences, snooze) bering, ishonchli yetkazib berish va «nega men buni oldim» degan shaffoflikni ta’minlang. Shunda signallar shovqin manbai emas, balki boshqaruv vositasiga aylanadi.