Google Cloud 提供工具,可透過 Google Cloud Monitoring 監控專案的可靠性,並透過 Google Cloud Logging 錯誤記錄偵錯問題。每當執行使用者意圖時發生錯誤 Google Home 數據分析管道會記錄指標失敗情形,以及 會在專案記錄檔中發布錯誤記錄。
錯誤疑難排解分為兩個步驟:
- 透過智慧型住宅指標監控專案狀態。
- 請查看 錯誤記錄檔
監控錯誤
您可以使用 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 中有多個系統會隨時將記錄傳送至您的專案。您需要編寫查詢來篩選記錄,並找出所需的記錄。可以是時間範圍、 資源、記錄嚴重性或自訂項目。
您可以使用查詢按鈕建立自訂篩選器。
如要指定「時間範圍」,請按一下時間範圍選項按鈕
,然後選擇其中一個 只要設定成「自動重新啟動」 和「在主機維護期間」選項即可這項操作會篩選記錄,並顯示 選取的時間範圍如要指定「資源」,請按一下「資源」下拉式選單。 然後選擇「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,這將逐步引導您 才能有效變更
學習資源
本文提供智慧型家居動作錯誤的疑難排解步驟。您也可以查看我們的程式碼研究室,進一步瞭解如何偵錯:
- 對智慧型住宅程式碼研究室進行偵錯: 針對智慧型住宅雲端整合項目進行偵錯的快速入門指南。
- 對本地首頁程式碼研究室偵錯: 智慧型住宅本機整合偵錯作業的快速入門指南。