排解整合錯誤

雲端對雲端    案件

Google Cloud 提供工具,可透過 Google Cloud Monitoring 監控專案的可靠性,並透過 Google Cloud Logging 錯誤記錄偵錯問題。每當執行使用者意圖時發生錯誤 Google Home 數據分析管道會記錄指標失敗情形,以及 會在專案記錄檔中發布錯誤記錄。

錯誤疑難排解分為兩個步驟:

  1. 透過智慧型住宅指標監控專案狀態。
  2. 請查看 錯誤記錄檔

如果是使用 Local Home SDK。熟悉疑難排解流程後 輕鬆來回查看指標和記錄檔,取得深入分析結果 發生錯誤。

監控錯誤

您可以使用 Google Cloud Monitoring dashboard 即可查看專案指標調整了部分主要圖表 很適合用來監控品質和偵錯

  • 監控專案的可靠度時,成功率圖表是第一個要開始查看的圖表。這張圖表中的下滑情形 指出部分或所有使用者服務中斷。建議做法 請密切監控這張圖表,瞭解每項變更後的異常狀況 或更新您的專案
  • 「第 95 個百分位數的延遲時間」圖表是瞭解 您的智慧型住宅動作對使用者而言正在運作。突然波動 這張圖表可能代表你的系統可能無法跟上 。建議定期查看這張圖表 避免出現非預期的行為
  • 使用「錯誤細分」圖表時 解決整合問題。針對每個錯誤 以醒目顯示的成功百分比圖表 。您可以查看標記的錯誤 Google Home platform以及如何進行疑難排解 。

平台錯誤代碼

以下是您可能會在專案記錄檔中看到的常見錯誤代碼: 找出 Google Home platform 偵測到的問題。如需疑難排解資訊,請參閱下表。

錯誤代碼 說明
BACKEND_FAILURE_URL_ERROR Google 收到您的 課程中也會快速介紹 Memorystore 這是 Google Cloud 的全代管 Redis 服務

在 GCP Logging 中使用 requestId 來檢查您的智慧型 居家服務記錄
BACKEND_FAILURE_URL_TIMEOUT Google 嘗試連線至您的服務時發生逾時問題。

請確認您的服務已連上網路、接受連線, 而非超出容量此外,請確認目標 裝置已開機、已連線並進行同步處理。
BACKEND_FAILURE_URL_UNREACHABLE Google 已收到你的服務傳送的 HTTP 5xx 錯誤代碼。

在 GCP Logging 中使用 requestId 來檢查您的智慧型 居家服務記錄
DEVICE_NOT_FOUND 合作夥伴服務端沒有這部裝置。

這通常表示資料同步處理或競爭失敗 值。
GAL_BAD_3P_RESPONSE Google 無法剖析帳戶連結服務的回應 。

使用 GCP Logging 中的 requestId 檢查錯誤記錄檔 使用帳戶連結
GAL_INTERNAL 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 錯誤代碼。

存取權杖並未過期,但您的服務已將其設為無效。在 GCP Logging 中使用 requestId 檢查您的智慧型 居家服務記錄
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 要求中包含的一或多部裝置未在 回應。

請確認執行回應的結構正確無誤,且要求中的所有裝置 ID 都會出現在回應中。
PARTNER_RESPONSE_MISSING_PAYLOAD 回應未包含 payload 欄位。

請務必在要求回應中納入酬載欄位。個人中心 即可進一步瞭解如何正確建立 執行回應
PARTNER_RESPONSE_NOT_OBJECT 無法將回應剖析為 JSON 物件。

檢查要求回應中的所有欄位,確認是否有非預期字元。 括號或格式不符錯誤。部分萬國碼 (Unicode) 字元 可能不受支援。此外,也請確認回覆正確無誤 轉成 JSON 物件
PROTOCOL_ERROR 無法處理要求。

請在 Google Cloud Logging 中使用 requestId 進行檢查 智慧型居家服務記錄
RESPONSE_TIMEOUT 要求在等候回應時逾時。

傳送回應時,逾時時間為 9 秒,自以下日期起: 要求是否傳送請務必在期限內回覆 讓應用程式從可以最快做出回應的位置 回應使用者要求
RESPONSE_UNAVAILABLE 沒有收到回應,或是回應中未列出狀態。

回應意圖執行要求的回應應有結構 根據 智慧型住宅文件並標示狀態。
TRANSIENT_ERROR 暫時錯誤是指會自行解決的錯誤。

這類錯誤通常是與裝置連線 部分服務。以及無法開啟與伺服器的新連線。

搜尋記錄

熟悉如何使用指標監控整合後,下一步就是使用 Cloud Logging 排解特定錯誤。錯誤記錄顯示 類似 JSON 的項目,其中包含時間、錯誤等實用資訊 程式碼和詳細資料。

Google Cloud 中有多個系統會隨時將記錄傳送至您的專案。您需要編寫查詢來篩選記錄,並找出所需的記錄。可以是時間範圍資源、記錄嚴重性或自訂項目。

查詢雲端記錄檔

您可以使用查詢按鈕建立自訂篩選器。

建構 Cloud 記錄檔查詢

如要指定「時間範圍」,請按一下時間範圍選項按鈕 ,然後選擇其中一個 只要設定成「自動重新啟動」 和「在主機維護期間」選項即可這項操作會篩選記錄,並顯示 選取的時間範圍

如要指定「資源」,請按一下「資源」下拉式選單。 然後選擇「Google 助理動作專案」。這樣系統就會在 查詢即可顯示來自專案的記錄檔。

您可以使用「嚴重程度」按鈕,依「緊急」、「資訊」、「偵錯」、 和其他嚴重性記錄層級

您也可以使用 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,這將逐步引導您 才能有效變更

學習資源

本文提供智慧型家居動作錯誤的疑難排解步驟。您也可以查看我們的程式碼研究室,進一步瞭解如何偵錯: