Alarm ve bildirim sistemi
1) Rol ve hedefler
Sinyal sistemi "mesaj göndermek'değil, bir karar verme devresidir: zamandaki sapmaları vurgular, eylemler sunar ve zamanında ve sessizlik arasında bir denge kurar.
Hedefler:- Önceliklendirme yoluyla MTTD/MTTR'yi azaltın ve oyun kitaplarını temizleyin.
- Gürültü engelleme yoluyla uyarı yorgunluğunu azaltın.
- Doğrudan bildirimden eylemler verin (ack, snooze, runbook, auto-action).
- Gizlilik ve rızaya uyun (opt-in/opt-out, log depolama).
2) Olayların ve seviyelerin taksonomisi
2. 1 Olay türleri
Metrikler/anomaliler (SRE, ürün, finans).
İş kuralları (limitler, dolandırıcılık, KYC, ödemeler).
Sistem (dağıtım, bozulma, lisanslar).
Kullanıcı (davranışsal tetikleyiciler, RG/sorumlu oyun).
2. 2 Önem düzeyi
Kritik - acil müdahale, kayıp/güvenlik riski.
Yüksek - KPI/SLO'nun önemli ölçüde bozulması.
Orta - İş saatlerinde gerekli eylem.
Düşük/Bilgi - gözlem/bağlam, sindirimlere otomatik evrişim.
2. 3 Öncelik
'Etki × Aciliyet' matrix P1..P4. Kanallara ve SLA reaksiyonlarına bağlantı.
3) Mimari ve iplikler
Sinyal Üreticileri - Olayların Şeması - Normalleştirme (zenginleştirme, tekdüzelik) - Korelasyon - Düzeltilmiş (politika motoru) - Yönlendirme - Canala teslimatları - Tercihlerin Merkezi - Günlükler/analizler.
Temel bileşenler:- Enricher: kiracı, rol, bölge, oyun kitabı bağlantıları ekler.
- Anahtar bazında Deduper-Group yinelenen olaylar.
- Correlator: Bir olaya ilgili sinyalleri yapıştırır.
- Politika Motoru: YAML/DSL kuralları, sessiz saatler, yükselmeler.
- Teslimat: Uygulama içi, e-posta, push, SMS, webhook, sohbet entegrasyonu.
4) Kurallar ve politikalar (YAML örneği)
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) Veri tekilleştirme, korelasyon, çırpma bastırılması
Dedup: grup kimliği 'dedup _ key = hash (service' metric'dim) '; TTL ≥ Çırpma penceresi.
Korelasyon: İlgili sinyalleri topoloji (servis - zavisimost), zaman (± N min) ve bağlam (serbest bırakma, olay) ile birleştirir.
Çırpma: "M dakika başına N olay" eşikleri - histerezi yükseltmek veya bastırmak için bir öneri ile bir sinyal "çırpma tespit edildi".
6) Yönlendirme ve RACI
Sorumlu: İlk bildirimi/sürüklemeyi kim alır.
Sorumlu: SLA'dan sonra kim yükselir.
Consulted: thread/chat kanalında kimden bahsedileceği.
Bilgilendirilmiş: sindirimi/sonuçları kim bırakacak.
Rol ve bağlama göre atama (kiracı, bölge, ürün akışı).
7) Teslimat kanalları ve nüanslar
Retrai: 5xx/429/timeout - backoff + jitter; 'Retry-After' saygı. Idempotence: Webhook'larda 'X-Notification-Id'.
8) Tercihler Merkezi
Olay türüne, seviyesine, kanalına göre Opt-in/Opt-out.
Sessiz saatler, 15/30/60 dakika manuel erteleme.
Eşik/duyarlılık (örneğin ≥ 3 σ anomali).
Dil/yerel ayar, zaman/para birimi biçimi.
Rol bağlama: SRE/Ürün/Finans için ön ayarlar.
Şeffaflık: Kullanıcının neden sinyal aldığını gösterin (kurala bağlantı).
9) İçerik tasarımı: mesaj yapısı
Kritik sinyal için desen (P1):- Başlık: Kısa, tetikleyici ile: "[P1] [PSP _ TR] 3DS arızalarında keskin artış (+ %12)".
- Bağlam: dönem, etkilenen segmentler/bölge, veri kaynağı.
- Sebep/hipotez: "PSP_X 18:20 UTC'nin serbest bırakılmasıyla ilişkili".
- SLA/son tarih: "10 dakika içinde tırmanma".
- CTA: "Open playbook", "Enable fallback PSP_Y," Ack (30 dk) ".
- Bağlantılar: graph, incident-thread, metrics, runbook.
- Meta veriler: 'trace _ id', 'incident _ id', 'dedup _ key'.
Ton: gerçekler, dramatizasyon yok; Sayılar ve birimler kod çözmeden kısaltmalardan kaçınır.
Yerelleştirme: değişkenler - yer tutucular, çeviriler kaynaklarda saklanır; sayılar/tarihler - yerel ayarlara göre.
10) Bildirimlerdeki eylemler (İşlem yapılabilir)
Zaman parametreleri ile Ack/Snooze.
Olay akışına atama/davet etme.
Bağlam otomatik tamamlama ile Runbook-Open çözüm adımları.
Tek tıklamayla iyileştirme (güvenli olan yerlerde): rota değiştirme, limit yükseltme, işi yeniden başlatma (onay ve denetim ile).
Otomatik tamamlama alanlarına sahip bilet (Jira/GitHub) oluşturun.
11) Sinyal kalitesi: metrikler ve hedefler
Hassasiyet ≥ P1/P2 için %80.
Geri çağırma (tüm olaylar arasında tespit edilen olayların oranı) %70 ≥.
Gürültü: Kullanıcı başına ortalama sinyal/saat (hedef tavan).
Ack-time p50/p95, Eskalasyon oranı, Erteleme oranı (gürültü göstergesi olarak).
MTTD/MTTA/MTTR (alan adları ve kanallar açısından).
Silenced-but-should-alert (kurallara bağlı boşluklar) ayrı bir panodur.
12) Gürültü kontrolü: teknikler
Histerezis ve eşikler için sürgülü pencereler.
Algılamadan önce kenar yumuşatma (EWMA).
Toplama: 30 küçük yerine - en çok katkıda bulunanlarla bir parti/özet.
Bağlam sınırları: maksimum N bildirimleri/saat/kanal/kullanıcı.
Otomatik geribildirim: kullanıcı arka arkaya 3 × boyunca Ertele'yi tıklarsa - eşiği yükseltmeyi/kanalı değiştirmeyi önerin.
13) Güvenlik, gizlilik, uyumluluk
Webhooks için HMAC imzası, sırların döndürülmesi, 'X-Key-Id'.
RBAC/ABAC: rol/kiracı tarafından sinyal görünürlüğü.
PII minimizasyonu, günlüklerdeki maskeler, denetim eylemleri (ack/assign/runbook).
Onay ve bildirim nedenleri (kural/politika) - yükte.
Saklama/TTL bildirim günlükleri, Olaylarda Yasal Bekletme.
14) Şemalar ve yükler
Olay (dahili)
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 }
}
Bildirim (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) Üründe UX desenleri
Gelen kutuları: Kritik/Yüksek/Diğer sekmeler, miktar rozetleri.
Olay akışı: ilişkili sinyaller, eylemlerin zaman çizelgesi,'ne yapıldı ".
Filtreler: rol, etki alanı, bölge, zaman, "sadece cevapsız".
Listedeki hızlı eylemler (ack/snooze/assign).
Açıklayın: "Neden görüyorsunuz" (kural, eşikler, veriler).
Özet: Sabah/akşam, TZ tarafından lokalize.
16) Test planı
Birim: dedup tuşları, histerezis, kanat çırpma, yüklerin serileştirilmesi.
Entegrasyon: yönlendirme, sessiz saatler, tırmanmalar, kanalların geri çekilmesi.
E2E: senaryo P1 anomaliden bilet kapanışına; Sessiz saatlerde P2 - sindirmek.
Kaos: bağlantı kaybı (SMTP/SMS), gecikmeler, sinyal çığ, saat eğrilmesi.
A11y/i18n: ekran okuyucular, klavye ack/erteleme, sayıların/tarihlerin yerelleştirilmesi.
17) Kalite panoları
Etki alanına göre hassas/hatırlama.
Ack zamanı p50/p95 ve zamanında onaylanan payı.
Kullanıcı/saat başına gürültü ve en iyi gürültü kuralları.
Tırmanma oranı ve "yanlış tırmanmalar".
Bastırılmış vs Teslim (ne kadar bastırılmış/sindirilmiş).
Kullanıcı geri bildirimi :/messages, noise üzerine yorumlar.
18) Kontrol listeleri
Tasarım
- Olay taksonomisi ve seviyeleri tutarlıdır
- Sessiz saatler/eskalasyon politikaları açıklanmıştır
- Dedup/Korelasyon/Çırpma yapılandırıldı
- Kanallar, Retras, Webhook Idempotency
- Tercih Merkezi (opt-in/out, erteleme)
- İçerik şablonları ve yerelleştirme
- Playbooks ve tek tıklama eylemleri (denetlenmiş)
- Kalite metrikleri ve gösterge tabloları
Operasyon
- Eşik Optimizasyonu Üç Aylık
- A/B kuralları (eşik, pencereler, özet)
- Düzenli'en iyi gürültü've CAPA yorumları
- Kanal gizli rotasyon (HMAC, SMTP, SMS)
- Planlanan oyun günleri testi
19) Uygulama planı (3 yineleme)
Yineleme 1 - Taban çizgisi (2-3 hafta)
Taksonomi, önem/öncelik, tercih merkezi (uygulama içi + e-posta).
Dedup, basit anahtar/zaman korelasyonu, sessiz saatler.
Mesaj şablonları, oyun kitapları, ack/snooze/assign.
Yineleme 2 - Güvenilirlik ve Gürültü Azaltma (3-4 hafta)
Çırpma/histerezis, özetler, sohbet entegrasyonları ve webhooks (HMAC'ler, retrays).
SLA'ya göre eskalasyon, kalite panoları (hassasiyet/hatırlama, gürültü).
Tek tıklamayla iyileştirme (onay ve denetim ile).
Yineleme 3 - Optimizasyon ve Ölçek (Sürekli)
Topoloji/sürümlerle korelasyon, eşiklerin otomatik önerileri.
A/B kuralları, "eşiğin ne zaman çalışacağını" tahmin eder.
Gürültü değerlendirmeleri ve düzenli oyun günleri.
20) Mini-SSS
Uyarı yorgunluğu ile nasıl başa çıkılır?
Dedup, korelasyon, histerezis, sindirimler ve tercih merkezleri + düzenli gürültü ve A/B eşik incelemeleri.
Anomaliler için ML gerekli midir?
Yararlı, ancak deterministik kurallar ve açıklanabilir eşiklerle başlayın. ML, her zaman Explain ile bir eklenti gibidir.
Kullanıcılar neden "ekstra'e-postalar alıyor?
Kural eşleşmelerini, sessiz saatleri, "neden teslim edildi" denetimlerini kontrol edin, kanal/saat sınırlarını ve özetlerini ayarlayın.
Toplam
Güçlü bir sinyal sistemi akıllı filtreleme ve doğru önceliklendirme + tek tıklama eylemleridir. Taksonomiyi ve politikaları resmileştirin, dedup/korelasyon/histerezi uygulayın, kullanıcılara kontrol (tercihler, erteleme) verin, güvenilir teslimat ve şeffaflık sağlayın "neden aldım. O zaman sinyaller bir gürültü kaynağı değil, bir kontrol aracı haline gelecektir.