קטלוג אירועים קנוניים
- summary:
הקטלוג הקנוני של שמות האירועים — GitHub, שיתוף ווב, התראות, Repo Analyzer ואירועי ביזנס — עם הכלל לשמות ב-snake_case ובלי PII.
עיקרון
שמרו על שמות אירועים ב-snake_case; הימנעו מ-PII. השתמשו ב-resource ו-attributes.
GitHub
github_rate_limit_check— בדיקת Rate Limit.github_upload_start— התחלת תהליך העלאה.github_upload_saved_error— שגיאה בשמירת קובץ שהועלה.github_upload_direct_error— שגיאה בהעלאה ישירה.github_import_repo_error— שגיאה בייבוא ריפו.github_sync— סנכרון קבצים מוצלח.
{"event":"github_upload_saved_error","severity":"error","request_id":"a3f2c891","repo":"owner/repo","error":"Rate limit exceeded"}
DB
db_get_latest_version_error— שגיאה בשליפת גרסה אחרונה.db_save_code_snippet_error— שגיאה בשמירת קטע קוד.db_delete_file_error— שגיאה במחיקה.db_recycle_bin_ttl_index_missing— אינדקס ה-TTL שמרוקן את סל המיחזור אינו במצב המבוקש בקולקציה שב-collection. בלעדיו פריטים בסל אינם נמחקים לעולם, והעמוד/trashממשיך להציג ”נמחק סופית ב-“ על תאריכים שעברו. נשלח מ-DatabaseManager._create_recycle_bin_ttl_indexesבכל עלייה ובפקודה/recycle_backfill; הסיבה הטכנית נרשמת לפניו באירוע שלsafe_create_index. המצב הנוכחי נראה בעמוד/admin/verify-indexes, בסעיףrecycle_bin_ttl.
{"event":"db_get_latest_version_error","severity":"error","request_id":"a3f2c891","error":"not found"}
Alerts
alert_received— התקבלה התראה מה-Alertmanager.alerts_parse_error— כשל בפענוח ההתראה.
Web Push
מנוי ותפעול:
push_subscribed/push_unsubscribed— דפדפן נרשם למנוי או הוסר ממנו.push_subscriptions_cleanup/push_subscriptions_delete_all— ניקוי מנויים מעמוד ההגדרות.push_deleted_dead_endpoints— מנויים שהוסרו אחרי404/410משירות הפוש.sw_push_report— דיווח מה-Service Worker על שלב בטיפול בהתראה.
שליחה של תזכורות פתקים:
push_send_attempt— ניסיון שליחה של תזכורת שהגיע זמנה.push_send_error— כשל בשליחה למנוי. נרשם עםendpoint_hashולא עם ה-endpoint עצמו, שהוא מזהה מכשיר.push_send_no_subscriptions— למשתמש אין מנוי פעיל.push_send_missing_vapid_private— המסלול המקומי נבחר בלי מפתח VAPID פרטי.
שליחה של אירועי כתיבה מה-MCP:
push_event_send_attempt— ניסיון שליחה של אירוע שנרשם על ידי שירות ה-MCP.push_event_unknown_kind— האירוע נושאkindשגרסת ה-WebApp הזו אינה יודעת לבנות ממנו התראה. הוא מכובה ואינו נשלח, כדי שלא ייבחר בכל סבב מכאן והלאה.push_event_delivery_exhausted— המסירה נכשלה עד תקרת הניסיונות, והאירוע עבר למצב סופי בלי שנשלח. עולה על כשל שאינו404/410— כלומר כזה שאינו מוחק את המנוי ולכן חוזר על עצמו בכל סבב.
בדיקה ידנית:
push_test_result/push_test_local_error/push_test_worker_error— תוצאותPOST /api/push/test.
Jobs
job_started— הרצת Job התחילה.job_completed— הרצה הסתיימה בהצלחה.job_failed— הרצה נכשלה.job_skipped— הרצה דולגה (מושבת, או כבר רץ).job_stuck— הרצה עברה את סף הזמן ועדייןrunning.job_runs_reconciled— הרצות שנשארו ממחזיק מנעול קודם נסגרו בעלייה. אירוע מסכם אחד לכל פיוס:countהוא המניין המלא, ``job_ids_sample`` הוא מדגם ולא הרשימה כולה. ראו Background Jobs Monitor. כשלא נמצא מה לסגור נרשמת שורת לוג באותו שם עםcountאפס — ולא נשלח אירוע — כדי ש“רץ ולא מצא כלום“ ייראה שונה מ“לא רץ“.jobs_orphan_reconcile_skipped— הפיוס לא רץ כלל. ``reason`` אומר למה:no_lock(התהליך אינו מחזיק זמן רכישת מנעול, למשל תחתLOCK_FAIL_OPEN) אוno_db(אוסףjob_runsלא זמין).jobs_orphan_reconcile_timed_out— הפיוס נחתך אחריRECONCILE_TIMEOUT_SECS(``services/job_orphan_reconciler.py``). מה שלא נסגר ממתין לעלייה הבאה.jobs_orphan_reconcile_failed— הפיוס נפל על חריגה; ה-traceback בלוג.job_run_reconcile_skipped— הרצה אחת לא נסגרה כי הסטטוס שלה השתנה בין השליפה לעדכון (סיימה בעצמה). נספרת ב-skippedשל האירוע המסכם. השמות ברמת הג’וב פותחים במזהה הג’וב,jobs_orphan_reconcile; השם ברמת ההרצה הבודדת פותח ב-job_run— כדי שחיפוש על אחד לא יתפוס את השני בטעות.
דוגמה לאירוע המסכם job_runs_reconciled:
{"event":"job_runs_reconciled","severity":"warn","count":3,"skipped":0,"truncated":false,"job_ids_sample":["cache_warming","drive_sync"]}
Repo Analyzer
repo_analysis_start/repo_analysis_parsed/repo_analysis_donerepo_analysis_error— כשל בניתוח ריפו.
Business
business_metric— אירוע ביזנס כללי (למשלfile_saved/search/github_sync).
הערה
עדיף לציין מזהי משאבים עקביים (resource:{type,id}) ולשמור על msg_he קצר וברור.