Сигналдар жана билдирүүлөр системасы
1) ролу жана максаттары
Сигналдар системасы - "билдирүүлөрдү жөнөтүү" эмес, чечим кабыл алуу контуру: ал өз убагында четтөөлөрдү көрсөтөт, иш-аракеттерди сунуштайт жана өз убагында жана унчукпай ортосундагы балансты сактайт.
Максаттары:- MTTD/MTTR артыкчылыктуу жана так ойнотмо аркылуу азайтуу.
- alert fatigue азайтуу (эскертүү чарчоо) аркылуу ызы-чууну азайтуу.
- билдирүү түздөн-түз иш-аракеттерди бер (ack, snooze, runbook, auto жардам).
- Купуялуулукту жана макулдукту сактоо (opt-in/opt-out, логинди сактоо).
2) Окуялардын таксономиясы жана деңгээлдери
2. 1 Окуялардын түрлөрү
Метрика/аномалиялар (SRE, продукт, каржы).
Бизнес эрежелери (лимиттер, фрод, KYC, төлөмдөр).
Системалуу (деплой, деградация, лицензиялар).
Колдонуучулар (жүрүм-турум триггерлери, RG/жоопкерчиликтүү оюн).
2. 2 Маанилүүлүк деңгээл (Severity)
Critical - дароо жооп, жоготуу/коопсуздук коркунучу.
Жогорку - KPI/SLO олуттуу начарлашы.
Medium - жумуш убактысында иш-аракет талап кылынат.
Low/Info - байкоо/контекст, дайджесттерде авто-жыйноо.
2. 3 артыкчылык (артыкчылык)
Matrix 'Impact × Urgency' → P1..P4. каналдар жана SLA жооп байлап.
3) Архитектура жана агымдар
Сигналдарды өндүрүүчүлөр → Шина окуялар → Нормалдаштыруу (enrich, дедуп) → Корреляция → Эрежелер (policy engine) → Багыттоо → Жеткирүү каналдары → Артыкчылык борбору → Логи/аналитика.
Негизги компоненттери:- Enricher: tenant кошуу, ролу, аймак, playbook шилтемелер.
- Deduper: ачкыч боюнча кайталануучу окуяларды топтоо.
- Correlator: окуяга байланыштуу сигналдарды жабыштыруу.
- Саясат Engine: YAML/DSL эрежелери, саат, эскалация.
- Delivery: in-app, email, push, SMS, webhook, чат интеграциясы.
4) Эрежелер жана саясат (YAML мисал)
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) Дедупликация, корреляция, флаппингди басуу
Дедуп: топтун идентификатору 'dedup _ key = hash (service' metric 'dim)'; TTL ≥ Fapping терезе.
Корреляция: байланышкан сигналдарды топология (кызмат → көз карандылык), убакыт (± N мин) жана контекст (релиз, окуя) боюнча бириктирүү.
Fapping: "M мүнөт ичинде окуялар N" босогосу → histeresis же suppress жогорулатуу сунушу менен бир сигнал "fapping detected".
6) Багыттоо жана RACI
Responsible: ким биринчи билдирүү/ташуу алат.
Accountable: SLA кийин эскалация ким.
Consulted: ким tred/чат каналында айтылган.
Informed: ким дайджест/натыйжалары кетет.
ролу жана контекстинде дайындоо (тенант, аймак, продукт-агым).
7) Жеткирүү каналдары жана нюанстар
Retry: 5xx/429/тайм → backoff + jitter; 'Retry-After' сыйлоо. Демпотенттүүлүк: 'X-Notification-Id' вебхуктарда.
8) артыкчылык борбору (Preferences борбору)
Иш-чаралардын түрлөрү, деңгээлдери, каналдары боюнча Opt-in/Opt-out.
Жымжырттык тартиби (quiet hours), кол snooze 15/30/60 мүнөт.
Босого/сезгичтик (мисалы, аномалия ≥ 3 σ).
Тил/жергиликтүү, убакыт/акча форматы.
Ролдорго шилтеме: SRE/Product/Finance үчүн алдын ала жазуулар.
Ачык-айкындуулук: колдонуучу эмне үчүн сигнал алганын көрсөтүү (эрежеге шилтеме).
9) Мазмун дизайн: билдирүү түзүмү
Критикалык сигнал үлгүсү (P1):- Аталышы: кыскача, триггер менен: "[P1] [PSP _ TR] 3DS (+ 12%) кескин өсүшү".
- Контекст: мезгил, таасир сегменттер/аймак, маалымат булагы.
- Себеби/гипотеза: "18:20 UTC PSP_X чыгаруу менен байланыштуу".
- SLA/мөөнөтү: "10 мүнөттөн кийин эскалация".
- CTA: "Playbook ачуу", "fallback күйгүзүү PSP_Y", "Ack (30 мин)".
- Шилтемелер: график, окуя-тред, метрика, runbook.
- Метадеректер: 'trace _ id', 'incident _ id', 'dedup _ key'.
Тон: фактылар, драмалаштыруусуз; сандар жана өлчөө бирдиктери; аббревиатураларды чечмелебестен качыңыз.
Локализация: өзгөрмөлүү → плейсхолдерлер, которуулар ресурстарда сакталат; сандар/даталар - жергиликтүү.
10) Билдирүүлөрдөн иш-аракеттер (Actionable)
Ack/Snooze убакыт параметрлери менен.
Assign/Invite бир окуя.
Runbook: контексттин Auto толуктоо менен чечим баскычтарын ачуу.
One-click remediation (коопсуз жерде): багытын өзгөртүү, чекти көтөрүү, джоба (ырастоо жана аудит менен) кайра баштоо.
Талааларды авто толтуруу менен (Jira/GitHub) билет түзүү.
11) Сигналдардын сапаты: метрика жана максаттары
Precision (жөнөткөн арасында тиешелүү үлүшү) ≥ P1/P2 үчүн 80%.
Recall (бардык окуялардын арасында табылган үлүшү) ≥ 70%.
Noise: колдонуучуга орточо сигналдар/саат (максаттуу шып).
Ack-time p50/p95, Escalation rate, Snooze rate (ызы-чуу көрсөткүчү катары).
MTTD/MTTA/MTTR (домендер жана каналдар боюнча).
Silenced-but-should-alert (анткени эрежелер) - өзүнчө дашборд.
12) ызы-чуу башкаруу: ыкмалары
Гистерезис жана босоголор үчүн "жылма терезелер".
тегиздөө алдында (EWMA).
Агрегация: ордуна 30 майда - бир батч/дайджест топ контрибуторлор менен.
Контексттик лимиттер: N билдирмелерден/саат/канал/колдонуучудан ашпайт.
Auto-пикир: колдонуучу катары менен 3 × басса Snooze → чеги жогорулатуу/канал өзгөртүү сунуш кылат.
13) Коопсуздук, купуялык, комплаенс
HMAC-Webhook кол, сырларды айлантуу, 'X-Key-Id'.
RBAC/ABAC: ролдору/тенанттар боюнча сигналдардын көрүнүшү.
PII-минималдаштыруу, журналдарда маска, иш-аракет аудит (ack/assign/runbook).
Макулдук (consent) жана билдирүүнүн себептери (эреже/саясат) - payload.
Retention/TTL билдирүүлөр Логин, окуялар боюнча Юридикалык Hold.
14) Схемалар жана Payloads
Окуя (ички)
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 }
}
Эскертүү (канал-агностик)
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) продукт UX үлгүлөрү
Inbox: өтмөктөр Critical/High/Other, саны төш белгилер.
Окуя тасмасы: корреляцияланган сигналдар, таймлайн аракеттери, "эмне болду".
чыпкалар: ролу, домен, аймак, убакыт, "жоопсуз гана".
Тизмедеги тез аракеттер (ack/snooze/assign).
Explain: "Эмне үчүн сиз көрүп жатасыз" (эреже, босоголор, маалыматтар).
Дайджесттер: таңкы/кечки, TZ боюнча локализацияланган.
16) Тест-план
Unit: дедуп ачкычтары, гистерезис, флаппинг, сериалдаштыруу payload's.
Integration: багыттоо, quiet hours, эскалация, ретра каналдар.
E2E: P1 сценарийи аномалиядан билеттин жабылышына чейин; P2 quiet hours → дайджест.
Chaos: канал жоготуу (SMTP/SMS), кечигүү, көчкү сигналдар, clock-skew.
A11y/i18n: screen-readers, клавиатура ack/snooze, сандарды/даталарды локализациялоо.
17) Dashbord сапаты
Precision/домендерди кайра чакыртып алуу.
Ack time p50/p95 жана өз убагында тастыкталган үлүшү.
Noise per user/hour жана жогорку ызы-чуу эрежелери.
Escalation rate жана "жалган эскалация".
Suppressed vs Delivered (канча басылган/дайджестке кошулган).
Колдонуучу feedback :/билдирүүлөр, ызы-комментарий.
18) Чек баракчалары
Долбоорлоо
- Окуялардын таксономиясы жана деңгээлдери макулдашылган
- quiet hours/эскалация саясаты сүрөттөлгөн
- Dedup/корреляция/Fapping орнотулган
- Каналдар, Retry, Vebhuke демпотенттиги
- артыкчылык борбору (opt-in/out, snooze)
- Мазмун үлгүлөрү жана локалдаштыруу
- Playbook жана бир-чыкылдатуу иш-аракеттер (аудит менен)
- Сапат көрсөткүчтөрү жана дашборддор
Иштетүү
- чеги оптималдаштыруу чейрек сайын
- A/B эрежелери (босого, терезелер, digest)
- Үзгүлтүксүз карап чыгуу "жогорку ызы-чуу" жана CAPA
- Канал сырларын айлантуу (HMAC, SMTP, SMS)
- Сигнал сыноо (оюн күн) тартиби боюнча
19) Ишке ашыруу планы (3 итерация)
Итерация 1 - Негизги контур (2-3 жума)
Таксономия, severity/priority, артыкчылык борбору (in-app + email).
Дедуп, ачкыч/убакыт боюнча жөнөкөй корреляция, quiet hours.
Билдирүү шаблондору, ойноткучтар, ack/snooze/assign.
Итерация 2 - Ишенимдүүлүк жана ызы-чууну басаңдатуу (3-4 жума)
Флаппинг/гистерезис, дайджесттер, чат интеграциясы жана вебхактар (HMAC, ретра).
SLA боюнча эскалация, сапаттуу дашборддор (precision/recall, noise).
One-click remediation (тастыктоо жана аудит менен).
Итерация 3 - Оптималдаштыруу жана масштаб (үзгүлтүксүз)
Топология/релиздер боюнча корреляция, босоголордун авто-сунуштары.
A/B эрежелери, "босого качан иштейт".
ызы-пикир жана үзгүлтүксүз оюн күн.
20) Mini-FAQ
Кантип alert fatigue менен күрөшүү керек?
Дедуп, корреляция, гистерезис, дайджесттер жана артыкчылык борборлору + үзгүлтүксүз ызы-чуу жана A/B босоголору.
Аномалиялар үчүн ML керекпи?
Пайдалуу, бирок аныкталган эрежелер жана түшүндүрүлүүчү босоголор менен башталат. ML - кошумча катары, сөзсүз Explain менен.
Эмне үчүн колдонуучулар "кошумча" каттарды алышат?
эрежелердин дан текшерип, саат, аудит "эмне үчүн жеткирилди", канал/саат жана дайджесттер боюнча чектөөлөрдү орнотуу.
Жыйынтык
Күчтүү сигнал системасы бир чыкылдатуу менен акылдуу чыпкалоо жана туура артыкчылыктуу + иш-аракет болуп саналат. Таксономияны жана саясатты формализациялоо, дедупту/корреляцияны/гистерезисти киргизүү, колдонуучуларга көзөмөлдү берүү (preferences, snooze), ишенимдүү жеткирүү жана ачыктыкты камсыз кылуу "эмне үчүн мен алдым". Ошондо сигналдар ызы-чуу булагы эмес, башкаруу куралы болуп калат.