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

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

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

848f483bfcd2997a.png

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

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

מה תלמדו

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

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

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

גישה ליומני

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

78982d8b6d19b827.png

Logs Explorer מורכב משני קטעים עיקריים: קטע לכתיבת השאילתות בחלק העליון (כלי ליצירת שאילתות) ואזור להצגת התוצאות התואמות (תוצאות השאילתות).

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

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

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

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

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

753bfe72a9f8e959.png

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

3ef42da5a6c322e1.png

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

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

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

10eaf1d204decf3c.png

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

dd3410e65a83cf5d.png

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

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

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

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

825c57c36800844e.png

action

  • trait: טירגוט לפי מאפיין של המכשיר לפי המשתמש (לדוגמה, OnOff, ‏ StartStop, ‏ Brightness)
  • actionType: מצב מפורט של המאפיין (לדוגמה, מופעל, מושבת, בהשהיה, מושבת, מופעל מחדש)

device

  • deviceType: טירגוט לפי סוג המכשיר של המשתמש (לדוגמה, תאורה, מתג, מכונת כביסה)

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

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

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

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

הצגת נתוני מדדים שמבוססים על יומנים

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

1b2c88c18533fbcd.png

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

54a836fdc3a666a3.png

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

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

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

52329085f841782e.png

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

44961e7cb3663341.png

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

f7e025c27f30f996.png

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

4. מזל טוב

674c4f4392e98c1.png

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

השלבים הבאים

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

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