לוגים, מטריקות, אירועים וטרייסים: ארבעה קולות שמספרים סיפור אחד
לוגים, מטריקות, אירועים וטרייסים: ארבעה קולות שמספרים סיפור אחד
כשמערכת מתנהגת בצורה לא צפויה, האינסטינקט הראשון הוא “להסתכל בנתונים”. אבל מהר מאוד מתברר שיש יותר מדי מהם - וסוגים שונים לגמרי.
לוגים. מטריקות. אירועים. טרייסים.
אלה לא שמות שונים לאותו דבר. אלה ארבע דרכים שונות שבהן מערכת “מדברת” - וכל אחת מהן נועדה לענות על שאלה אחרת.
לוגים: מה קרה כאן, בדיוק
לוגים הם הסיפור המקומי. הם מתעדים מה רכיב מסוים חשב, עשה או החליט - בנקודת זמן ספציפית.
לוג טוב:
- עוזר להבין הקשר
- מספר רצף פנימי
- מיועד לקריאה אנושית
אבל לוגים אינם תמונת מצב. הם לא נועדו לענות על “האם המערכת בריאה” - אלא על “מה קרה כאן כשכבר משהו השתבש”.
יותר מדי לוגים לא יוצרים בהירות - הם יוצרים רעש.
מטריקות: איך המערכת מרגישה לאורך זמן
מטריקות הן מבט מלמעלה. מספרים מצטברים: Latency, Throughput, Error rate, שימוש בזיכרון.
הן לא מספרות סיפור - הן מציירות צורה.
מטריקה טובה:
- ניתנת להשוואה בזמן
- מאפשרת זיהוי מגמות
- עוזרת לזהות שמשהו משתנה
אבל היא לא תגיד למה.
מטריקות אומרות: “יש בעיה כאן.” לא: “זו הסיבה.”
אירועים: משהו בעל משמעות קרה
אירוע הוא נקודת ציון. לא כל פעולה היא אירוע - אלא רק מה שיש לו משמעות מערכתית.
לדוגמה:
- מודל הוחלף
- קונפיגורציה השתנתה
- רכיב נכנס או יצא משירות
אירועים מחברים בין “לפני” ל”אחרי”. הם מאפשרים לשאול: “מה השתנה - ומתי”.
בלי אירועים, קשה לקשר בין שינוי התנהגות לבין שינוי סיבה.
טרייסים: איך בקשה נעה במערכת
טרייסים עוקבים אחרי בקשה אחת, מקצה לקצה. דרך כל השירותים, התורים והרכיבים שהיא עוברת בהם.
זהו הממד שהכי חסר במערכות מבוזרות: לא מה כל רכיב עשה - אלא איך כולם פעלו יחד עבור בקשה אחת.
טרייסים מאפשרים:
- להבין Latency מצטבר
- לזהות צווארי בקבוק
- לראות אינטראקציות נסתרות
בלי טרייסים, המערכת נראית כאוסף חלקים מנותקים.
המשל
דמיינו עיר:
- לוגים הם יומני עבודה של כל עובד.
- מטריקות הן לוח המחוונים של העירייה.
- אירועים הם החלטות מועצה ושינויים במדיניות.
- טרייסים הם מסלול של אזרח אחד דרך העיר.
אפשר לנהל עיר עם רק אחד מהם - אבל אי אפשר להבין אותה באמת.
סיכום
Observability אינה כלי אחד - אלא שפה שלמה.
לוגים, מטריקות, אירועים וטרייסים לא מתחרים זה בזה - הם משלימים זה את זה.
מערכת יציבה לא שואלת: “איזה מהם הכי חשוב?”
אלא: “איזו שאלה אני מנסה לענות עכשיו - ובאיזה כלי אשתמש כדי לענות עליה.”