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

ענן לענן    Matter

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

אם תבחינו בעלייה בשיעור של השגיאה הזו ביומן GCP, תוכלו ליצור איתנו קשר לקבלת מידע נוסף.
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 כדי לבדוק את יומני השירות של הבית החכם.
RESPONSE_TIMEOUT תם הזמן הקצוב לתפוגה של הבקשה בזמן ההמתנה לתגובה.

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

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

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

לוגי חיפוש

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

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

שליחת שאילתות ל-Cloud Logs

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

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

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

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

אפשר להשתמש בלחצן Severity כדי לסנן לפי Emergency,‏ Info,‏ Debug ורמות חומרה אחרות ביומן.

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

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

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

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

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

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

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

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