מערכת התזכורת וההודעות
1) תפקיד ומטרות
מערכת האיתות אינה ”שולחת מסרים”, אלא מעגל קבלת החלטות: היא מדגישה סטיות בזמן, מציעה פעולות ושומרת על איזון בין זמן לשקט.
מטרות:- הפחתת MTTD/MTTR באמצעות עדיפות וספרי משחק ברורים.
- להפחית את עייפות הכוננות באמצעות ביטול רעש.
- תן פעולות ישירות מההודעה (אק, נודניק, מנוהל, פעולה אוטומטית).
- התבונן בפרטיות והסכמה (opt-in/opt-out, אחסון יומן).
2) טקסונומיה של אירועים ורמות
2. 1 סוגי אירועים
מדדים/חריגות (SRE, מוצר, מימון).
חוקים עסקיים (גבולות, הונאה, תשלומים).
מערכת (פריסה, השפלה, רישיונות).
משתמש (טריגרים התנהגותיים, משחק RG/אחראי).
2. רמות החומרה 2
תגובה קריטית-מיידית, סיכון לאובדן/בטיחות.
הידרדרות משמעותית של KPI/SLO.
פעולה בינונית נדרשת בשעות העבודה.
Low/Info - תצפית/הקשר, פיתול אוטומטי לתוך עיכול.
2. 3 עדיפות
'השפעה × דחיפות' matrix = P1..P4. קישור לערוצים ותגובות SLA.
3) ארכיטקטורה וחוטים
Productions of Signament = Sheena of Eventure # Normalization (העשרה, dedup) = the Correlation # Transported (מנוע מדיניות)> Routing # Canala driversions = מרכז ההעדפות = Logs/Analytics.
רכיבי מפתח:- מעשיר: מוסיף דייר, תפקיד, אזור, קישורים לספרי שעשועים.
- דופר-קבוצה אירועים חוזרים על ידי מפתח.
- דבק סימן קשור לתקרית.
- מנוע מדיניות: YAML/DSL כללים, שעות שקטות, הסלמה.
- משלוח: באפליקציה, דוא "ל, דחיפה, 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: קבוצת ID 'dedup _ key = hash (שירות' metric 'dim'); חלון מנופף TTL.
קורלציה: לשלב אותות קשורים על ידי טופולוגיה (servis # zavisimost), זמן (NN min) והקשר (שחרור, תקרית).
נפנוף: סיפים ”N אירועים לכל M דקות” = אות אחד ”נפנוף זוהה” עם הצעה להעלות היסטרציה או לדכא.
6) ניתוב ו ־ RACI
אחראי: מי מקבל את ההודעה הראשונה/גרירה.
דין וחשבון: מי מחריף אחרי אס-אל-איי.
ייעוץ: מי להזכיר בערוץ החוט/צ 'אט.
מידע: מי יעזוב את העיכול/התוצאות.
הקצאה לפי תפקיד והקשר (דייר, אזור, זרם מוצר).
7) ערוצי משלוח וניואנסים
רטריי: 5xx/429/timeout # backoff + jitter; ”מחדש-אחרי” כבוד. אידמפוטנט: "X-הודעה-Id' על פנקסי אינטרנט.
8) מרכז העדפות
Opt-in/Opt-Out על ידי סוג אירוע, רמה, ערוץ.
שעות שקטות, תנומה ידנית 15/30/60 דקות.
סף/רגישות (למשל 3 סינימליה).
שפה/מקום, תבנית זמן/מטבע.
קשירת תפקידים: presents for SRE/Product/Finance.
שקיפות: הצג מדוע המשתמש קיבל את האות (קישור לכלל).
9) עיצוב תוכן: מבנה מסרים
תבנית לאות קריטי (P1):- כותרת: Bright, עם הדק: ” P1 PSP _ TR rise in 3DS associations (+ 12%)”.
- הקשר: תקופה, מקטעים/אזור מושפעים, מקור נתונים.
- היגיון/השערה: ”הקשור לשחרור PSP_X 18:20 UTC”.
- SLA/תאריך יעד: ”הסלמה בעוד 10 דקות”.
- CTA: ”ספר מהלכים פתוח”, ”אפשר נסיגה, PSP_Y” (Ack (30 דקות.
- קישורים: גרף, חוט-אירוע, מדדים, מדפים.
- Metadata: ”trace _ id',” incident _ id', ”dedup _ key”.
טון: עובדות, ללא דרמה; מספרים ויחידות נמנעים מקיצורים ללא פענוח.
לוקליזציה: משתנים = בעלי מיקום, תרגומים מאוחסנים במשאבים; מספרים/תאריכים - לפי מקום.
10) פעולות מהודעות (ניתן לפעול)
אק/תנומה עם פרמטרים זמן.
להקצות/להזמין לחוט האירוע.
שלבי פתרון פתוחים עם השלמה אוטומטית של ההקשר.
תיקונים של לחיצה אחת (היכן שבטוח): החלפת מסלול, העלאת מגבלה, הפעלה מחדש של עבודה (עם אישור וביקורת).
צור כרטיס (Jira/GitHub) עם שדות להשלמה אוטומטית.
11) איכות אות: מדדים ומטרות
דיוק: 80% עבור P1/P2.
Recember (הפרופורציה של תקריות מזוהות בין כל התקריות) היא 70%.
רעש: אותות/שעה בממוצע למשתמש (תקרת המטרה).
ack-time p50/p95, קצב הסלמה, Snooze rate (כמחוון רעש).
MTTD/MTTA/MTR (במונחים של תחומים וערוצים).
התראה מושתקת (פערים הנובעים מחוקים) היא לוח מחוונים נפרד.
12) בקרת רעש: טכניקות
היסטריה וחלונות הזזה לסף.
אנטי-אליסינג (EWMA) לפני גילוי.
צבירה: במקום 30 קטנים - אצווה/עיכול אחד עם תורמים עליונים.
הגבלת הקשר: הודעת N מקסימלית/שעה/ערוץ/משתמש.
משוב אוטומטי: אם המשתמש לוחץ על Snooze במשך 3 × ברצף.
13) ביטחון, פרטיות, ציות
חתימת HMAC לחוברות אינטרנט, סיבוב של סודות, "X-Key-Id'.
ראות אותות על ידי תפקיד/דייר.
מזעור PII, מסכות ביומנים, פעולות ביקורת (ack/הקצאה/runbook).
הסכמה וסיבות להודעה (כלל/מדיניות) - בפקודה.
שימור/יומני הודעת TTL, Hold משפטי על תקריות.
14) סכמות ומטענים
אירוע (פנימי)
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 במוצר
תיבות: קריטי/גבוה/לשוניות אחרות, תגים כמות.
הזנת אירוע: אותות מתואמים, ציר זמן של פעולות, ”מה שנעשה”.
מסננים: תפקיד, תחום, אזור, זמן, ”רק ללא מענה”.
פעולות מהירות ברשימה (אק/תנומה/הקצאה).
הסבר: ”מדוע אתה רואה זאת” (חוק, סף, נתונים).
עיכול: בוקר/ערב, מקומי על ידי טי-זי.
16) תוכנית מבחן
מפתחות dedup, היסטרזיס, נפנוף, סריאליזציה של מטען.
אינטגרציה: ניתוב, שעות שקטות, הסלמה, מגשים מחדש של ערוצים.
E2E: תרחיש P1 מסטייה לסגירת כרטיס; p2 בשעות שקטות = לעכל.
כאוס: אובדן קישור (SMTP/SMS), עיכובים, מפולת אותות, רפיון שעון.
A11y/i18n: קוראי מסך, מקלדת אק/נודניק, לוקליזציה של מספרים/תאריכים.
17) לוחות מחוונים באיכות
דיוק/החזר לפי תחום.
ack זמן p50/p95 וחלוקה של זמן מאושר.
רעש לכל משתמש/שעה וכללי רעש עליון.
הסלמה ו ”הסלמה כוזבת”.
מודחק נגד Delived (כמה מודחק/מעוכל).
משוב משתמש :/הודעות, הערות על רעש.
18) רשימות בדיקה
עיצוב
[ ] טקסונומיה אירוע ורמות הן עקביות
[ ] שעות שקטות/מדיניות הסלמה מתוארות
[ ] הגדרות Dedup/Correlation/Flapping
[ ערוצים ], רטראס, Webhook Idempotency
[ מרכז העדפות ] (opt-in/out, snooze)
[ ] תבניות תוכן ומיקום
[ ] ספרי שעשועים ופעולות של קליק אחד (מבוקר)
[ ] מדדי איכות ולוחות מחוונים
מבצע
[ ] סף אופטימיזציה רבעונית
[ ] כללי A/B (סף, חלונות, עיכול)
[ ] ”רעש עליון” סדיר וביקורות CAPA
סיבוב סודי [ ערוץ ] (HMAC, SMTP, SMS)
[ ] ימי משחק מתוכננים
19) תוכנית יישום (3 איטרציות)
איטרציה 1 - קו בסיס (2-3 שבועות)
טקסונומיה, חומרה/עדיפות, מרכז העדפה (in-application + mail).
Dedup, מפתח פשוט/זמן קורלציה, שעות שקטות.
תבניות מסרים, ספרי משחק, אק/נודניק/הקצאה.
איטרציה 2 - אמינות והפחתת רעש (שבועות 3-4)
תנופה/היסטרזיס, עיכול, אינטגרציית צ 'אט, וחוברות אינטרנט (HMACs, מגשים מחדש).
הסלמה לפי SLA, לוחות מחוונים איכותיים (דיוק/החזרה, רעש).
תיקון לחיצה אחת (עם אישור וביקורת).
iteration 3 - אופטימיזציה וסולם (רציף)
מתאם על ידי טופולוגיה/שחרור, אוטומטי הצעות של סף.
א/ב שולט, תחזית ”מתי הסף יעבוד”.
ביקורות רעש וימי משחק רגילים.
20) מיני ־ FAQ
איך להתמודד עם עייפות?
Dedup, קורלציה, היסטריזה, עיכול ומרכזי העדפה + רעש רגיל וביקורות סף A/B.
האם אם-אל נחוצה לסטיות?
שימושי, אבל להתחיל עם כללים דטרמיניסטיים וסף מוסבר. אם-אל זה כמו תוסף, תמיד עם הסבר.
למה משתמשים מקבלים מיילים נוספים?
בדיקת התאמות כללים, שעות שקטות, ביקורת ”למה מועבר”, הגדרת מגבלות ערוץ/שעה ועיכול.
סך הכל
מערכת אותות חזקה היא סינון חכם ועדיפות נכונה + פעולות של לחיצה אחת. הגדרת טקסונומיה ומדיניות, יישום דדופ-אפ/קורלציה/היסטריזה, מתן שליטה למשתמשים (העדפות, נודניק), מתן אמינות ושקיפות "למה קיבלתי את זה. "אז האותות יהפכו לכלי שליטה, לא למקור רעש.