מדדים מבוססי יומנים לבית החכם

1. לפני שמתחילים

כפי שציינו ב-codelab בנושא ניפוי באגים בבית החכם, אנחנו מפרסמים מדדים ויומנים בפרויקטים של הבית החכם. המדדים עוזרים לכם לקבוע איפה יש בעיות בפעולה לבית החכם, והיומנים שימושיים כשאתם רוצים לבצע ניתוח מעמיק כדי לפתור את הבעיות האלה.

848f483bfcd2997a.png

בנוסף למדדים שאנחנו מספקים לפרויקט, אתם יכולים ליצור מדדים משלכם באמצעות מדדים מבוססי-יומן מ-Google Cloud. כך תוכלו לעקוב אחרי דפוסים מסוימים ביומנים ולנפות באגים בבעיות איכות בצורה יעילה.

דרישות מוקדמות

מה תלמדו

  • איך כותבים שאילתות יעילות לסינון יומני שגיאות של בית חכם
  • איך ליצור מדדים מבוססי-יומן כדי ליצור מדדים מהשאילתות
  • איך יוצרים תרשימים ומרכזי בקרה ממדדים מבוססי-יומן לצורך מעקב

2. עבודה עם יומנים

כפי שציינו בקצרה במאמר על ניפוי באגים ב-Codelab של הבית החכם, עבודה עם יומנים היא חיונית להצלחת הפרויקט. יש ב-Google Cloud כלים מצוינים למעקב אחרי היומנים ולניתוח שלהם. כדי לגשת לכל היומנים שזמינים לפרויקט, אפשר להשתמש ב-Logs Explorer.

גישה ליומנים

השלב הראשון כדי לגשת ליומנים הוא להיכנס ל-Google Cloud ולבחור את הפרויקט. בתפריט הצדדי, עוברים אל Logs Explorer דרך Operations > Logging > Logs Explorer. אחרי שפותחים את הכלי, אמור להופיע המסך הבא:

78982d8b6d19b827.png

ב-Logs Explorer יש שני חלקים עיקריים: חלק עליון שבו כותבים את השאילתות (Query builder), וחלק שבו מוצגות התוצאות התואמות (Query results).

רכיבים רבים ב-Google כותבים יומנים לפרויקט שלכם כברירת מחדל. כדי למצוא את היומנים שנוצרים מהשילוב של הבית החכם ולעבוד איתם, צריך לכתוב שאילתות בהתאמה אישית.

כתיבת שאילתות

היומנים מתפרסמים בפרויקטים תחת סוג משאב. כל סוג משאב מייצג פלטפורמה שונה ב-Google. יומנים שמגיעים מפלטפורמת הבית החכם זמינים בפרויקט שלכם בסוג המשאב assistant_action_project.

בנוסף, לכל היומנים מוקצית רמת חומרה בזמן היצירה. ביומנים של בית חכם אנחנו משתמשים ברמה ERROR ליומנים שמייצגים שגיאות וחריגים, וברמה DEBUG לכל השאר.

בדוגמה הבאה נכתוב שאילתה לסינון יומנים שמגיעים רק מהפלטפורמה שלנו ומייצגים שגיאות, באופן הבא:

753bfe72a9f8e959.png

אחרי שמסיימים לכתוב את השאילתה, לוחצים על הלחצן הפעלת השאילתה כדי להריץ אותה. אמורות להופיע שגיאות שקשורות לשילוב של הבית החכם:

3ef42da5a6c322e1.png

כפי שאפשר לראות, יש לנו מספר שגיאות שהתרחשו בזמנים שונים במהלך השעה האחרונה. כל שורה מייצגת יומן שגיאות יחיד. אפשר גם ללחוץ על היומנים הבודדים ולהרחיב שדות מקוננים כדי לראות את המידע שכלול בהם.

שימוש בהיסטוגרמה

ב-Logs Explorer יש תכונה שימושית של היסטוגרמה שמאפשרת לראות את התפלגות הזמן של יומנים שתואמים לשאילתה. כדי להפעיל את ההיסטוגרמה, לוחצים על PAGE LAYOUT (פריסת הדף) בלחצנים שבפינה השמאלית העליונה ומסמנים את התיבה Histogram (היסטוגרמה) כדי להפעיל את התכונה.

10eaf1d204decf3c.png

אחרי ההפעלה, תראו את פירוט היומנים שתואמים לשאילתה:

dd3410e65a83cf5d.png

כפי שאפשר לראות בתמונה שלמעלה, יש כמה שגיאות שמופיעות במרווחים גדולים במהלך השעה האחרונה. נראה שהם יוצרים שלוש קבוצות סביב השעות 13:45, 14:00 ו-14:15. ההיסטוגרמה יכולה לעזור לכם לזהות דפוסים שקשה לראות רק על ידי בדיקת ערכי חותמת הזמן.

כרגע השאילתה שבה אנחנו משתמשים לא מבחינה בין יומנים ומציגה לנו את כל השגיאות שמגיעות מהשילוב של הבית החכם. יש הרבה מקרים שבהם כדאי להבחין בין שגיאות, למשל כדי לעקוב אחרי דפוסי שגיאות שמקורם בסוגים או במאפיינים מסוימים של מכשירים. כדי לעשות את זה, נבדוק איך כותבים שאילתות מתקדמות.

שאילתות מתקדמות

כשבודקים את יומן האירועים של הבית החכם, אפשר לראות שיש בו שדות שונים שאפשר לאסוף מהם מידע:

825c57c36800844e.png

action

  • trait: מאפיין המכשיר שמטרגטים לפי המשתמש (לדוגמה, OnOff, ‏ StartStop, ‏ Brightness)
  • actionType: מצב מדויק של התכונה (לדוגמה, On, ‏ Off, ‏ Pause, ‏ Stop, ‏ Resume)

device

  • deviceType: טירגוט סוג המכשיר על ידי המשתמש (לדוגמה, Light, ‏ Switch, ‏ Washer)

status

  • isSuccess: האם התוצאה של הפעולה נחשבת להצלחה (true / false)
  • statusType: קוד סטטוס של תוצאת הפעולה (מציין קוד שגיאה אם הפעולה לא הצליחה)
  • externalDebugString: מחרוזת לניפוי באגים של הפעולה (מתארת את השגיאה בפירוט)

שדות אחרים

יש גם שדות נוספים שאפשר להפיק מהם מידע:

  • requestId: מזהה ייחודי שמשויך לבקשה (נוצר על ידי Google)
  • executionType: הנתיב שבו נעשה שימוש בבקשה (מציין אם מדובר ב-Cloud או במקומי)
  • latencyMsec: זמן האחזור שהמשתמשים חווים עבור הבקשה בשרתי Google (באלפיות השנייה)
  • locale: איזו שפה/אזור מוגדרים בבקשה (לדוגמה, en-US, ‏ fr-FR)

כדי להשתמש בשדה המאפיין מהרשימה שלמעלה, נשנה את השאילתה כך שתכלול רק שגיאות שנובעות מהמאפיין OnOff, באופן הבא:

resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

אחרי שמריצים את השאילתה המעודכנת, המערכת מזהה את היומנים ומציגה את התוצאה המתאימה:

76176d7a41962341.png

עד עכשיו ביצענו את כל השאילתות שלנו באופן ידני. זו דרך מצוינת לבדוק במהירות את מצב השגיאות, אבל לא כל כך טובה למעקב אחרי השינויים בדפוסי השגיאות לאורך זמן. כדי להפוך את התהליך הזה לאוטומטי ולתעד נתונים מפרקי זמן ארוכים יותר, ניצור מדדים שמבוססים על יומנים.

3. מדדים מבוססי-יומנים

כדי לספור את מספר היומנים שתואמים לשאילתות לאורך זמן, אפשר להשתמש במדדים מבוססי-יומן. כך תוכלו לראות דפוסים ביומנים ולקבל תובנות טובות לגבי הבעיות הבסיסיות.

יצירת מדד מבוסס-יומנים

כדי ליצור מדד שמבוסס על יומן, עוברים אל Operations > Logging > Log-based Metrics. תוצג רשימה של מדדים מבוססי-יומן שכבר זמינים בפרויקט. אחרי שתלחצו על הלחצן CREATE METRIC (יצירת מדד), יוצג לכם המסך ליצירת מדד מבוסס-יומן:

296af6e7d8dcf6cf.png

יש שני סוגים עיקריים של מדדים: מדד מונה סופר את מספר היומנים שתואמים לשאילתה. מדד התפלגות עוקב אחרי ההתפלגות הבסיסית ומאפשר לבצע פעולות סטטיסטיות כמו ממוצע, חציון ואחוזון 95.

אם גוללים למטה, מופיע קטע של מסננים שבו אפשר להקליד את השאילתה.

f7f2093fa1bce2ac.png

מדביקים את השאילתה מהקטע הקודם באזור הטקסט יצירת מסנן.

​​resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

אפשר גם ללחוץ על הלחצן תצוגה מקדימה של היומנים כדי לראות תצוגה מהירה של היומנים הקודמים שתואמים למסנן. בסיום, לוחצים על הלחצן יצירת מדד ועוברים לקטע הבא.

צפייה בנתונים של מדדים מבוססי-יומנים

אחרי שיוצרים את המדד שמבוסס על יומן, הוא יהיה זמין בקטע מדדים בהגדרת משתמש בדף 'מדדים שמבוססים על יומן'.

1b2c88c18533fbcd.png

בתפריט שמופיע לצד המדד מבוסס-היומנים (3 נקודות), בוחרים באפשרות Metrics Explorer כדי לראות את הנתונים שנאספו במדד מבוסס-היומנים:

54a836fdc3a666a3.png

אם תהיה שגיאה חדשה, היא תתועד במדד מבוסס-היומן ותוצג בחלון התרשים בMetrics Explorer.

מעקב באמצעות מרכזי בקרה בהתאמה אישית

אחרי שמוודאים שהמדד החדש מבוסס-היומן פועל כמצופה, אפשר לשמור את תצוגת התרשים הזו בלוח בקרה בהתאמה אישית. כדי לעשות זאת, לוחצים על הלחצן שמירת התרשים בפינה השמאלית העליונה של Metrics Explorer. תוצג הנחיה לתת שם לתרשים ולבחור את לוח הבקרה שבו רוצים לשמור אותו:

52329085f841782e.png

אחרי ששומרים את התרשים במרכז בקרה, אפשר לגשת אליו בקלות משם. כדי לגשת לרשימת מרכזי הבקרה שזמינים בפרויקט, עוברים אל Operations > Monitoring > Dashboards (פעולות > מעקב > מרכזי בקרה).

44961e7cb3663341.png

שמרנו את התרשים במרכז בקרה בשם Codelab Dashboard. כשפותחים אותו, מוצגת התצוגה הבאה:

f7e025c27f30f996.png

כאן מוצג התרשים שמייצג את המדד שמבוסס על יומן, יחד עם הנתונים שנאספו לאחרונה. יומני הבית החכם מתפרסמים בפרויקט בזמן אמת. כשיומן חדש יהיה זמין, הוא ייספר באופן מיידי במדד מבוסס-היומן.

4. מזל טוב

674c4f4392e98c1.png

מעולה! למדתם איך להפוך את השאילתות למדדים מבוססי-יומן ולשמור אותם במרכזי בקרה בהתאמה אישית לצורך מעקב.

השלבים הבאים

בהתבסס על Codelab זה, נסו את התרגילים הבאים וחקרו משאבים נוספים:

  • כדי ליצור מדדים מבוססי-יומן בשדות מספריים כמו זמן האחזור, אפשר לעיין במדריך יצירת מדדי הפצה.
  • כדאי לעיין בספריית השאילתות לדוגמה שסופקה על ידי Google Cloud כדי לראות חלק מהמסננים המורכבים שבהם אפשר להשתמש למדדים מבוססי-יומן.