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

クラウドからクラウド    案件 をご覧ください。

Google Cloud には、Google Cloud プロジェクト内でプロジェクトの信頼性を Google Cloud Monitoring で発生し、Google Cloud Logging で問題をデバッグする エラーログも参照できますユーザー インテントのフルフィルメントに失敗すると、Google Home アナリティクスのパイプラインがその失敗を指標に記録し、プロジェクト ログにエラーログを公開します。

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

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

ローカル統合のプロセスは、 Local Home SDK。トラブルシューティングの手順を習得することで、指標とログを交互に見ながらエラーを簡単に分析できるようになります。

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

Google Cloud Monitoring dashboard を使用できます。 プロジェクトの指標にアクセスできます。品質のモニタリングとデバッグに特に役立つ主なグラフをいくつか紹介します。

  • 成功率のグラフは、プロジェクトの信頼性をモニタリングする際にまず確認すべきグラフです。このグラフの急落は ユーザーベースの一部またはすべてが停止したことを示します。おすすめの方法 変更のたびにこのグラフに異常がないか注意深くモニタリングします プロジェクトを更新します。
  • 95 パーセンタイル レイテンシ グラフは、 ユーザーに対するスマートホーム アクションのパフォーマンスを評価できます。急激な変動 このグラフは システムが需要に追い付いていない可能性があることを 関連付けられます。このグラフを定期的にチェックして 防ぐことができます。
  • [Error Breakdown] グラフは、 統合に関する問題のトラブルシューティングに使用できますエラーごと 成功率のグラフでハイライト表示されていると、エラーコードが表示されます。 確認できますフラグが付けられたエラーは (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 サービスから 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 に置き換えます。詳しくは、エラーと例外を処理するをご覧ください。
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES リクエストに含まれる 1 つ以上のインテントが レスポンスが返されます。

EXECUTE レスポンスが正しく構造化されていること、リクエストからのすべてのインテントの結果がレスポンスに含まれていることを確認します。
PARTNER_RESPONSE_MISSING_DEVICE レスポンスに、リクエスト内の 1 つ以上のデバイスが見つかりません。

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

リクエスト レスポンスには、必ずペイロード フィールドを含めてください。マイページ サイトを適切に構築して 実行レスポンス
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 も参考にしてください。