פתרון בעיות בשילוב שגיאות

ענן לענן    Matter

Google Cloud מספק כלים למעקב אחרי האמינות של הפרויקטים באמצעות Google Cloud Monitoring ולניפוי באגים עם יומני שגיאות של Google Cloud Logging. בכל פעם שמתרחש כשל במילוי הכוונות של המשתמשים, צינור עיבוד הנתונים של Google Home Analytics מתעד את הכשלים במדדים שלכם ומפרסם יומן שגיאות ביומני הפרויקט.

יש שני שלבים לפתרון השגיאות:

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

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

מעקב אחרי שגיאות

אפשר להשתמש במעבדי Google Cloud Monitoring dashboard כדי לגשת למדדי הפרויקט. יש כמה תרשימים עיקריים שימושיים במיוחד למעקב אחרי איכות וניפוי באגים:

  • התרשים Success Rate הוא התרשים הראשון שמתחיל במעקב אחרי האמינות של הפרויקטים. ירידות בתרשים הזה יכולות להעיד על הפסקה זמנית בשירות אצל חלק מבסיס המשתמשים או אצל כולם. אחרי כל שינוי או עדכון בפרויקט, אנחנו ממליצים לעקוב מקרוב אחרי התרשים הזה כדי לוודא שאין בו חריגות.
  • תרשים זמן האחזור באחוזון ה-95 הוא מדד חשוב לגבי ביצועי הפעולה בבית החכם אצל המשתמשים. תנודות פתאומיות בתרשים הזה עשויות להצביע על כך שהמערכות שלכם לא מצליחות לטפל בבקשות. מומלץ לבדוק מדי פעם את התרשים כדי לראות התנהגות לא צפויה.
  • התרשימים של Error Breakdown הם שימושיים במיוחד כשרוצים לפתור בעיות בשילובים. לכל שגיאה שמודגשת בתרשים אחוזי ההצלחה מוצג קוד שגיאה בפירוט השגיאות. בטבלה שלמטה אפשר לראות את השגיאות שסומנו על ידי Google Home platform ואת הדרכים לפתור אותן.

קודי שגיאות פלטפורמה

לפניכם כמה קודי שגיאה נפוצים שאתם עשויים לראות ביומני הפרויקטים כדי לזהות בעיות שזוהו על ידי Google Home platform. בטבלה הבאה תוכלו למצוא מידע לפתרון בעיות.

קוד שגיאה תיאור
BACKEND_FAILURE_URL_ERROR Google קיבלה מהשירות שלך קוד שגיאה HTTP 4xx שהוא לא 401.

אפשר להשתמש ב-requestId ב-GCP Logging כדי לבדוק את יומני השירות לבית החכם.
BACKEND_FAILURE_URL_TIMEOUT פג הזמן הקצוב לבקשה של Google בניסיון ליצור קשר עם השירות שלך.

צריך לוודא שהשירות שלך במצב אונליין, מקבל חיבורים ושהוא לא חורג מהקיבולת. בנוסף, צריך לוודא שמכשיר היעד פועל, אונליין ומסונכרן.
BACKEND_FAILURE_URL_UNREACHABLE Google קיבלה מהשירות שלך קוד שגיאה HTTP 5xx.

אפשר להשתמש ב-requestId ב-GCP Logging כדי לבדוק את יומני השירות לבית החכם.
DEVICE_NOT_FOUND המכשיר לא קיים בצד השירות של השותף.

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

אפשר להשתמש ב-requestId ב-GCP Logging כדי לבדוק יומני שגיאות בשירות קישור החשבונות.
GAL_INTERNAL אירעה שגיאה פנימית של Google כש-Google ניסתה לאחזר אסימון גישה.

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

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

אם מופיע שיעור מוגבר של השגיאה הזו ב-GCP Logging, אפשר ליצור איתנו קשר לקבלת מידע נוסף.
GAL_PERMISSION_DENIED אירעה שגיאה פנימית של Google כששיתוף האסימון לא מורשה.

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

זו לא בעיה ולא נדרשת פעולה כלשהי.
INVALID_AUTH_TOKEN Google קיבלה מהשירות שלכם קוד שגיאת HTTP 401.

פג התוקף של אסימון הגישה אבל השירות שלך ביטל אותו. אפשר להשתמש ב-requestId ב-GCP Logging כדי לבדוק את יומני השירות לבית חכם.
INVALID_JSON אי אפשר לנתח או להבין את תגובת JSON.

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

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

אם התשובה לבקשה מציינת שגיאה, הקפידו להשתמש באחד מ קודי השגיאה הנתמכים שלנו.
PARTNER_RESPONSE_INVALID_PAYLOAD אי אפשר לנתח את השדה של התגובה payload כאובייקט JSON.

בודקים אם שדה המטען הייעודי (payload) בתשובה לבקשה כולל סוגריים תואמים, ואם הוא מובנה בצורה נכונה כשדה JSON.
PARTNER_RESPONSE_INVALID_STATUS התשובה לא מציינת סטטוס או שהיא מצביעה על סטטוס שגוי.

תשובות לבקשות למילוי הזמנות של Intent צריכות לציין סטטוס עם SUCCESS, OFFLINE, ERROR, EXCEPTIONS. למידע נוסף על טיפול בשגיאות ובחריגים
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES אובייקט Intent אחד או יותר שקיימים בבקשה חסר בתשובה.

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

מוודאים ש תגובת הביצוע בנויה בצורה תקינה ושכל מזהי המכשירים מהבקשה נמצאים בתשובה שלכם.
PARTNER_RESPONSE_MISSING_PAYLOAD התשובה לא מכילה את השדה payload.

חשוב לכלול שדה מטען ייעודי בתגובה לבקשה. למידע נוסף על יצירה נכונה של תגובה לביצוע.
PARTNER_RESPONSE_NOT_OBJECT אי אפשר לנתח את התשובה כאובייקט JSON.

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

משתמשים ב-requestId ב-Google Cloud Logging כדי לבדוק את יומני השירות לבית החכם.
RESPONSE_TIMEOUT פג הזמן הקצוב של הבקשה בזמן ההמתנה לתשובה.

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

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

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

לוגי חיפוש

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

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

שליחת שאילתות על יומני Cloud

אפשר להשתמש בלחצני השאילתות כדי לבנות מסננים מותאמים אישית.

יצירת שאילתות ב-Cloud Log

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

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

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

אפשר גם להשתמש בשדה Query ב-Logs Explorer כדי להזין ערכים מותאמים אישית. מנוע השאילתות שמשמש את השדה הזה תומך גם בשאילתות בסיסיות כמו התאמה למחרוזות וגם בסוגים מתקדמים יותר של שאילתות, כולל קומפרטורים (<, >=, !=) ואופרטורים בוליאניים (AND, OR, NOT).

לדוגמה, הרשומה בהתאמה אישית שבהמשך תחזיר שגיאות שמגיעות מסוג מכשיר LIGHT:

resource.type = "assistant_action_project" AND severity = ERROR AND jsonPayload.executionLog.executionResults.actionResults.device.deviceType = "LIGHT"

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

בדיקת התיקונים

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

מקורות מידע ללמידה

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