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

Cloud-to-cloud    Matter

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

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

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

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

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

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

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

  • התרשים שיעור ההצלחה הוא התרשים הראשון שמתחיל לפעול כשמתחילים לעקוב אחרי המהימנות של הפרויקטים. ירידות בתרשים הזה יכולות להצביע על הפסקת שירות בחלק מבסיס המשתמשים או בכולו. מומלץ לעקוב אחרי התרשים הזה כדי לזהות חריגות אחרי כל שינוי או עדכון בפרויקט.
  • התרשים 95th Percentile Latency הוא אינדיקטור חשוב לביצועי השילוב של Cloud-to-cloud עבור המשתמשים. תנודות פתאומיות בתרשים הזה עשויות להצביע על כך שהמערכות שלכם לא מצליחות לעמוד בקצב של הבקשות. מומלץ לבדוק את התרשים הזה מדי פעם כדי לזהות התנהגויות לא צפויות.
  • תרשימי 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 מהשירות שלכם.

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

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

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

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

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

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

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

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

אפשר להשתמש ב-requestId ב-Google Cloud Logging כדי לבדוק את היומנים של שירות הבית החכם.
RELINK_REQUIRED התשובה מציינת שגיאה מסוג relinkRequired, ולכן המשתמש מתבקש לקשר מחדש את חשבונות Google והשותף שלו.

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

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

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

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

לוגי חיפוש

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

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

שאילתות ביומני Cloud

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

יצירת שאילתות ביומני Cloud

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

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

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

אפשר גם להשתמש בשדה 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 שלנו כדי לקבל מידע נוסף על ניפוי באגים: