פתרון בעיות שקשורות לשילובים

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

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

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

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

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

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

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

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

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

קוד שגיאה תיאור
BACKEND_FAILURE_URL_ERROR Google קיבלה מהשירות קוד שגיאה 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 קיבלה קוד שגיאה 401 של HTTP מהשירות שלך.

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

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

אם יש קצב מוגבר בקוד הזה, צריך לבדוק אם יש גם עלייה בשיעור השגיאות שקשורות לאובייקטים מסוג 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.

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

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

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

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

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

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

לוגי חיפוש

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

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

יומנים של שאילתות בענן

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

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

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

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