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

ענן לענן    נושא

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

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

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

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

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

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

  • התרשים Success rate (שיעור הצלחה) הוא התרשים הראשון שבו אתם מתחילים מעקב אחרי האמינות של הפרויקטים. ירידות בתרשים הזה יכולות לציין הפסקה זמנית בשירות לחלק מבסיס המשתמשים או לכולם. ההמלצות שלנו מעקב צמוד אחר התרשים כדי לאתר אי-סדרים לאחר כל שינוי או עדכון לפרויקט.
  • תרשים זמן האחזור באחוזון ה-95 הוא מדד חשוב הפעולה בבית החכם מבצעת למשתמשים שלך. תנודות פתאומיות בתרשים הזה יכול להיות שהמערכות שלכם לא יצליחו לעמוד בקצב לבקשות. מומלץ לבדוק מדי פעם את התרשים כדי לראות כל התנהגות בלתי צפויה.
  • התרשימים פירוט שגיאות שימושיים במיוחד כשמדובר לפתור בעיות בשילובים שלכם. לכל שגיאה מודגש בתרשים אחוזי ההצלחה, יוצג קוד שגיאה בפירוט השגיאות. אפשר לראות את השגיאות שסומנו על ידי 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, תוכלו ליצור איתנו קשר לקבלת מידע נוסף.
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 אובייקט.

בודקים אם שדה המטען הייעודי (Payload) בתגובה לבקשה תואם בסוגריים מרובעים והוא בנוי בצורה תקינה כשדה 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

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

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

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

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

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

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