Google Cloud 提供的工具可讓您利用 Google Cloud Monitoring 監控專案的可靠性,並對 Google Cloud Logging 錯誤記錄檔偵錯。如果在執行使用者意圖時發生失敗情形,Google Home Analytics 管道會記錄指標失敗,並在專案記錄中發布錯誤記錄。
錯誤疑難排解分為兩個步驟:
- 透過智慧型住宅指標監控專案狀態。
- 查看錯誤記錄檔中的詳細錯誤說明,即可調查問題。
監控錯誤
您可以使用 Google Cloud Monitoring dashboard 存取專案指標。以下幾個主要圖表特別適合用於監控品質和偵錯:
- 「成功率」圖表是監控專案可靠性時的第一個圖表。這張圖表中的下滑情形表示部分或所有使用者的服務中斷。建議您密切監控這張圖表,瞭解專案每次變更或更新後是否有任何異常。
- 「95 百分位數延遲時間」圖表是瞭解智慧型住宅動作對使用者執行效能的重要指標。這張圖表中的突發波動可能表示您的系統可能無法跟上要求。建議定期檢查這張圖表,瞭解是否有任何非預期的行為。
- 「錯誤細目」圖表最適合用於排解整合問題。對於成功百分比圖表中醒目顯示的每個錯誤,錯誤細目都會顯示錯誤代碼。您可以在下表中查看 Google Home platform 標記的錯誤及如何進行疑難排解。
平台錯誤代碼
以下是您可能會在專案記錄檔中看到的幾個常見錯誤代碼,用於識別 Google Home platform 所擷取的問題。如需疑難排解資訊,請參閱下表。
錯誤代碼 | 說明 |
---|---|
BACKEND_FAILURE_URL_ERROR |
Google 收到你的服務傳回 401 以外的 HTTP 4xx 錯誤代碼。 在 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 嘗試擷取存取權杖時發生 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 中有多個系統會隨時將記錄檔傳送至專案的系統。您必須編寫查詢以篩選記錄,然後找到所需的記錄。查詢可以是時間範圍、資源、記錄嚴重性或自訂項目。
![查詢雲端記錄檔](https://developers.home.google.com/static/images/analytics_logs_query.png?authuser=7&hl=zh-tw)
您可以使用查詢按鈕建立自訂篩選器。
![建構 Cloud 記錄檔查詢](https://developers.home.google.com/static/images/analytics_logs_tools.png?authuser=7&hl=zh-tw)
如要指定「Time Range」(時間範圍),請按一下時間範圍選取按鈕
,然後選擇其中一個提供的選項。這會篩選記錄,並顯示來自所選時間範圍內的記錄。如要指定資源,請按一下「Resource」下拉式選單,然後選擇「Google Assistant Action Project」。這樣就會在查詢中新增篩選器,以顯示來自專案的記錄。
您可以使用「嚴重程度」按鈕,依「緊急」、「資訊」、「偵錯」和其他嚴重性記錄層級進行篩選。
您也可以使用 Logs Explorer 中的「Query」欄位輸入自訂項目。這個欄位使用的查詢引擎支援基本查詢 (例如字串比對),以及包含比較符 (<, >=, !=
) 和布林運算子 (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 的使用使用手冊,讓您瞭解如何有效測試變更。
學習資源
本文件提供排解智慧型住宅動作錯誤的步驟。您也可以查看我們的程式碼研究室,進一步瞭解如何偵錯:
- 對智慧型住宅程式碼研究室偵錯: 快速開始指南,瞭解如何對智慧型住宅雲端整合進行偵錯。
- 對本機住家程式碼研究室進行偵錯:有關智慧型住宅本機整合偵錯的快速入門指南。