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

בנוסף למדדים שאנחנו מספקים לפרויקט, אתם יכולים ליצור מדדים משלכם באמצעות מדדים מבוססי-יומן מ-Google Cloud. כך תוכלו לעקוב אחרי דפוסים מסוימים ביומנים ולנפות באגים בבעיות איכות בצורה יעילה.
דרישות מוקדמות
- שילוב של Works with Smart Home
- השלמת ה-codelab בנושא Debugging the Smart Home
מה תלמדו
- איך כותבים שאילתות יעילות לסינון יומני שגיאות של בית חכם
- איך ליצור מדדים מבוססי-יומן כדי ליצור מדדים מהשאילתות
- איך יוצרים תרשימים ומרכזי בקרה ממדדים מבוססי-יומן לצורך מעקב
2. עבודה עם יומנים
כפי שציינו בקצרה במאמר על ניפוי באגים ב-Codelab של הבית החכם, עבודה עם יומנים היא חיונית להצלחת הפרויקט. יש ב-Google Cloud כלים מצוינים למעקב אחרי היומנים ולניתוח שלהם. כדי לגשת לכל היומנים שזמינים לפרויקט, אפשר להשתמש ב-Logs Explorer.
גישה ליומנים
השלב הראשון כדי לגשת ליומנים הוא להיכנס ל-Google Cloud ולבחור את הפרויקט. בתפריט הצדדי, עוברים אל Logs Explorer דרך Operations > Logging > Logs Explorer. אחרי שפותחים את הכלי, אמור להופיע המסך הבא:

ב-Logs Explorer יש שני חלקים עיקריים: חלק עליון שבו כותבים את השאילתות (Query builder), וחלק שבו מוצגות התוצאות התואמות (Query results).
רכיבים רבים ב-Google כותבים יומנים לפרויקט שלכם כברירת מחדל. כדי למצוא את היומנים שנוצרים מהשילוב של הבית החכם ולעבוד איתם, צריך לכתוב שאילתות בהתאמה אישית.
כתיבת שאילתות
היומנים מתפרסמים בפרויקטים תחת סוג משאב. כל סוג משאב מייצג פלטפורמה שונה ב-Google. יומנים שמגיעים מפלטפורמת הבית החכם זמינים בפרויקט שלכם בסוג המשאב assistant_action_project.
בנוסף, לכל היומנים מוקצית רמת חומרה בזמן היצירה. ביומנים של בית חכם אנחנו משתמשים ברמה ERROR ליומנים שמייצגים שגיאות וחריגים, וברמה DEBUG לכל השאר.
בדוגמה הבאה נכתוב שאילתה לסינון יומנים שמגיעים רק מהפלטפורמה שלנו ומייצגים שגיאות, באופן הבא:

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

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

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

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

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"
אחרי שמריצים את השאילתה המעודכנת, המערכת מזהה את היומנים ומציגה את התוצאה המתאימה:

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

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

מדביקים את השאילתה מהקטע הקודם באזור הטקסט יצירת מסנן.
resource.type="assistant_action_project" AND severity=ERROR AND jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"
אפשר גם ללחוץ על הלחצן תצוגה מקדימה של היומנים כדי לראות תצוגה מהירה של היומנים הקודמים שתואמים למסנן. בסיום, לוחצים על הלחצן יצירת מדד ועוברים לקטע הבא.
צפייה בנתונים של מדדים מבוססי-יומנים
אחרי שיוצרים את המדד שמבוסס על יומן, הוא יהיה זמין בקטע מדדים בהגדרת משתמש בדף 'מדדים שמבוססים על יומן'.

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

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

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

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

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

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