統合エラーのトラブルシューティング

Google Cloud には、Google Cloud プロジェクト内でプロジェクトの信頼性を Google Cloud Monitoring で発生し、Google Cloud Logging で問題をデバッグする エラーログも参照できますユーザーのインテントの遂行時にエラーが発生すると、 Google Home Analytics パイプラインでは、その失敗が指標に記録され、 エラーログをプロジェクト ログにパブリッシュします。

エラーのトラブルシューティングは、次の 2 つの手順で行います。

  1. スマートホーム指標でプロジェクトの状態をモニタリングできます。
  2. エラーログも参照できます

ローカル統合のプロセスは、 Local Home SDK。トラブルシューティング フローをマスターしたら、 指標とログを行き来できるようになり、 表示されます。

エラーをモニタリングする

Google Cloud Monitoring dashboard を使用できます。 プロジェクトの指標にアクセスできます。特に注目すべき重要なグラフがいくつかあります。 品質とデバッグのモニタリングに役立ちます。

  • 成功率グラフは、 モニタリングする方法を学びます。このグラフの急落は ユーザーベースの一部またはすべてが停止したことを示します。おすすめの方法 変更のたびにこのグラフに異常がないか注意深くモニタリングします プロジェクトを更新します。
  • 95 パーセンタイル レイテンシ グラフは、 ユーザーに対するスマートホーム アクションのパフォーマンスを評価できます。急激な変動 このグラフは システムが需要に追い付いていない可能性があることを 関連付けられます。このグラフを定期的にチェックして 防ぐことができます。
  • [Error Breakdown] グラフは、 統合に関する問題のトラブルシューティングに使用できますエラーごと 成功率のグラフでハイライト表示されていると、エラーコードが表示されます。 確認できますフラグが付けられたエラーは (Google Home platformによる)とそのトラブルシューティング方法 下の表をご覧ください。

プラットフォームのエラーコード

ここでは、プロジェクト ログに表示される一般的なエラーコードを Google Home platform で検出された問題を特定する。詳しくは、 次の表でトラブルシューティング情報をご確認ください。

エラーコード 説明
BACKEND_FAILURE_URL_ERROR 401 以外の HTTP 4xx エラーコードが あります。

GCP Logging で requestId を使用して、 ホームサービスログなどです
BACKEND_FAILURE_URL_TIMEOUT サービスにアクセスしようとしたときに Google のリクエストがタイムアウトしました。

サービスがオンラインであり、接続を受け入れ、 容量を超えないようにしますまた、ターゲットが デバイスの電源がオンになっていて、オンラインで、同期されている。
BACKEND_FAILURE_URL_UNREACHABLE サービスから HTTP 5xx エラーコードを受信しました。

GCP Logging で requestId を使用して、 ホームサービスログなどです
DEVICE_NOT_FOUND デバイスがパートナー サービス側に存在しません。

これは通常、データ同期の失敗や競合を示します。 あります。
GAL_BAD_3P_RESPONSE アカウント リンク サービスからのレスポンスを解析できません ペイロードの形式または値が無効であることが原因です。

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 サービスから HTTP 401 エラーコードを受信しました。

アクセス トークンは期限切れになっていないが、サービスによって無効化されている。 GCP Logging で requestId を使用して、スマート ホームサービスログなどです
INVALID_JSON JSON レスポンスを解析または認識できません。

JSON レスポンスの構造をチェックし、次のような無効な構文がないか確認します。 角かっこの不一致、カンマの欠落、無効な文字などが考えられます。
OPEN_AUTH_FAILURE ユーザーのアクセス トークンの期限が切れていて、Google がトークンを更新できない。 Google がサービスから HTTP 401 エラーコードを受信した場合です。

このコードの割合が増えた場合は、 スマートホーム インテントまたは更新に関連するエラーの割合が増加 作成できます。
PARTNER_RESPONSE_INVALID_ERROR_CODE レスポンスに認識できないエラーコードが表示されています。

リクエスト レスポンスにエラーが示されている場合は、必ずいずれかのエラーを使用してください。 <ph type="x-smartling-placeholder"></ph>から エラーコードを返します。
PARTNER_RESPONSE_INVALID_PAYLOAD レスポンスの payload フィールドを JSON として解析できません オブジェクト。

リクエスト レスポンスのペイロード フィールドが一致するかどうかを確認する JSON フィールドとして正しく構造化されています。
PARTNER_RESPONSE_INVALID_STATUS レスポンスでステータスが示されていないか、正しくないステータスが示されていません。

インテント フルフィルメント リクエストに対するレスポンスでステータスを示す いずれかの SUCCESS, OFFLINE, ERROR, EXCEPTIONS に置き換えます。マイページ は、<ph type="x-smartling-placeholder"></ph>をご覧ください エラーと例外の処理をご覧ください。
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES リクエストに含まれる 1 つ以上のインテントが レスポンスが返されます。

お客様の <ph type="x-smartling-placeholder"></ph> 実行レスポンスが正しく構造化され、結果が レスポンスにすべてのインテントが含まれていることを確かめます。
PARTNER_RESPONSE_MISSING_DEVICE リクエストに含まれる 1 つ以上のデバイスが レスポンスが返されます。

お客様の <ph type="x-smartling-placeholder"></ph> 実行レスポンスが正しく構造化され、すべてのデバイス レスポンスに存在します。
PARTNER_RESPONSE_MISSING_PAYLOAD レスポンスに payload フィールドが含まれていません。

リクエスト レスポンスには、必ずペイロード フィールドを含めてください。マイページ サイトを適切に構築して <ph type="x-smartling-placeholder"></ph> 実行レスポンス
PARTNER_RESPONSE_NOT_OBJECT レスポンスを JSON オブジェクトとして解析できません。

リクエスト レスポンスのすべてのフィールドに意図しない文字が含まれていないかチェックします。 角かっこや書式エラーなどを検出できます一部の Unicode 文字 サポートされていない可能性があります。回答が正しいことも確認してください JSON オブジェクトとして構造化されています
PROTOCOL_ERROR リクエストの処理に失敗しました。

Google Cloud Logging の requestId を使用して、 スマートホーム サービスのログです。
RESPONSE_TIMEOUT 応答を待つ間、リクエストがタイムアウトしました。

応答送信のタイムアウト期間は、応答の送信から 送信されます。この時間内に回答を送信してください。 できます。
RESPONSE_UNAVAILABLE レスポンスが届かないか、レスポンスにステータスが示されていません。

インテント フルフィルメント リクエストに対するレスポンスを構造化する によると スマートホーム ドキュメントを参照し、ステータスを示します。
TRANSIENT_ERROR 一時的なエラーは、自動的に解決されるエラーです。

通常、このようなエラーは、デバイスへの接続や 破棄されます。また、サーバーへの新しい接続を新しく 表示されます。

検索ログ

指標を使用して統合をモニタリングする方法に慣れたら、次は 特定のエラーをトラブルシューティングする Cloud Logging。エラーログは 時間、エラーなどの有用な情報を含むフィールドを持つ JSON に似たエントリ 送信元のスマートホーム インテントに関する詳細が含まれます。

Google Cloud には、ログを送信するシステムが複数あります。 常に維持できます。必要なこと ログをフィルタするクエリを作成する 必要なものを見つけます。クエリは、期間、 [リソース]、ログの [重大度]、またはカスタム エントリ。

Cloud ログをクエリする

クエリボタンを使用して、カスタム フィルタを作成できます。

Cloud ログクエリを作成する

[期間] を指定するには、期間の選択ボタンをクリックします。 ] を選択し、用意されているオプションから 1 つを選択します。 。これにより、ログがフィルタされ、指定した外部 IP アドレスからの 表示されます。

リソースを指定するには、[リソース] プルダウンをクリックします。 次に、[Google Assistant Action Project] を選択します。フィルタが追加されて プロジェクトから取得したログを表示できます。

[重大度] ボタンを使用して、[Emergency]、[Info]、[Debug]、 ログレベルを指定できます

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。Chronicle SOAR プラットフォームの Test Suite の使用方法。ここでは、 役立ちます。

学習用リソース

このドキュメントでは、スマートホームで発生するエラーのトラブルシューティングの手順について説明します。 アクション。デバッグの詳細については、以下の Codelab も参考にしてください。