モニタリングとロギング

このドキュメントでは、スマートホーム アクションの使用状況をモニタリングする方法と、イベントログにアクセスする方法について説明します。Google Cloud プロジェクトからこれらの機能にアクセスし、発生した問題のデバッグを行うことができます。

モニタリング

スマートホーム アクションの使用状況に関する有用な指標は、Cloud Monitoring を使用して入手できます。ダッシュボードを作成してアラートを設定し、プログラムから指標データにアクセスできます。

サポートされている指標

Cloud Monitoring は、assistant_action_project リソースタイプをモニタリングして以下の指標を提供します。

指標 種類 説明
smarthome_action/request_count DELTA execution_typestatustrait とラベル付けされたインテント リクエストの数。

execution_type(文字列): スマートホーム インテントのタイプ。

status(文字列): リクエストの結果。

trait(文字列): スマートホーム デバイスのトレイト。関連するトレイトがないイベントには、UNKNOWN というラベルが付けられます。
smarthome_action/request_latencies CUMULATIVEDISTRIBUTION execution_typestatustrait とラベル付けされたインテント リクエストのレイテンシの分布。

execution_type(文字列): スマートホーム インテントのタイプ。

status(文字列): リクエストの結果。

trait(文字列): スマートホーム デバイスのトレイト。関連するトレイトがないイベントには、UNKNOWN というラベルが付けられます。
smarthome_action/num_active_users GAUGE trait とラベル付けされた 1 日のアクティブ ユーザー。

trait(文字列): スマートホーム デバイスのトレイト。関連するトレイトがないイベントには、UNKNOWN というラベルが付けられます。
smarthome_action/seven_day_active_users GAUGE trait とラベル付けされた 1 週間のアクティブ ユーザー。

trait(文字列): スマートホーム デバイスのトレイト。関連するトレイトがないイベントには、UNKNOWN というラベルが付けられます。
smarthome_action/twenty_eight_day_active_users GAUGE trait とラベル付けされた 1 か月のアクティブ ユーザー。

trait(文字列): スマートホーム デバイスのトレイト。関連するトレイトがないイベントには、UNKNOWN というラベルが付けられます。
smarthome_action/local_event_count DELTA intentstatusapp version とラベル付けされたローカル イベントの数。

intent(文字列): ローカル フルフィルメントのインテント タイプ。

status(文字列): イベントの結果。

version(文字列): ローカル フルフィルメントのアプリ バージョン。

指標へのアクセス

プロジェクトの Cloud Monitoring にアクセスする手順は次のとおりです。

  1. Cloud Platform Console で、プロジェクト ページに移動します。

    プロジェクト ページに移動

  2. スマートホーム プロジェクトを選択します。

  3. [オペレーション] で、[モニタリング] > [Metrics Explorer] を選択します。

スマートホーム ダッシュボード

スマートホーム プロジェクトでは、SmartHome Analytics ダッシュボードを利用できます。このダッシュボードでは、フルフィルメントの使用状況を示す以下の指標をクラウドとローカルに分けてグラフで確認できます。

グラフ クラウド ローカル 全体
リクエスト総数
リクエスト成功率
実行の内訳
クエリの内訳
95 パーセンタイル レイテンシ
アクティブ ユーザー数(1 日、1 週間、1 か月)
スマートホーム エラーの内訳
ローカル フルフィルメント エラー(アプリ バージョンごと)
リクエストの平均レイテンシ

プロジェクトのスマートホーム ダッシュボードにアクセスする手順は次のとおりです。

  1. Actions Console でプロジェクト ページに移動します。

    Actions Console を開く

  2. スマートホーム プロジェクトを選択します。

  3. [Analytics](分析)タブを選択し、[Go to Google Cloud Platform](Google Cloud Platform に移動)をクリックします。

プロジェクトで Cloud Monitoring を使用する方法について詳しくは、次のドキュメントをご覧ください。

  • 料金: 無料割り当てと超過料金について説明しています。
  • 割り当てと上限: モニタリングの使用量に関する制限と保持ポリシーについて説明しています。
  • ログベースの指標: Cloud Logging エントリから追加の指標を作成します。

ロギング

スマートホーム アクションのイベントログにアクセスするには、Cloud Logging を使用します。Cloud Console でイベントログを確認したり、Google Cloud Pub/Sub を使用して他のアプリケーションにエクスポートしたりできます。

Cloud Logging は次のリソースタイプを提供します。

リソースタイプ 表示名 説明 ラベル
assistant_action_project Google アシスタント アクション プロジェクト アシスタント アクションに関連付けられた Google Cloud プロジェクトのコンテナ。
  • project_id: このリソースに関連付けられた Actions プロジェクトの ID(たとえば「my-project」)。

スマートホーム イベント

Actions Console プロジェクトでは、Cloud Logging の以下のイベントがサポートされます。

Cloud Logging リソース イベント
Google アシスタント アクション プロジェクト SYNC インテント エラー
QUERY インテント エラー
EXECUTE インテント エラー
通知エラー
アカウント リンク エラー
Local Home SDK HandlerError

同期ペイロード

次の表に、syncLog エントリのスキーマを示します。

プロパティ 説明
requestId スマートホーム インテントのリクエスト ID。
httpLatencyMsec レスポンスを受信するまでにかかった時間。
status インテント レスポンスのステータス。

実行ペイロード

次の表に、executionLog エントリのスキーマを示します。

プロパティ 説明
requestId スマートホーム インテントのリクエスト ID。
latencyMsec レスポンスを受信するまでにかかった時間。
executionType リクエストに使用されるトランスポート(「Cloud」、「Local」など)。
actionType (省略可)ユーザー アクションのインジケーター(「QUERY」や「EXECUTE」など)。EXECUTE アクションの場合は、サポートされているトレイトのフルフィルメントのために発行されたコマンドが含まれます。
trait (省略可)このユーザー アクションに関連付けられたトレイト。
deviceTypes イベントの影響を受けるデバイスタイプのリスト。
isSuccess リクエストが正常なレスポンスを受け取ったかどうか。
fallbackToCloud ローカル フルフィルメントからのエラー後に、リクエストをクラウド フルフィルメントに転送するかどうか。
statusType インテント レスポンスのステータス(「SUCCESS」、「PENDING」、「OFFLINE」など)。「ERROR」レスポンスの場合、このプロパティにはフルフィルメントによって提供された errorCode が含まれます。
externalDebugString (省略可)このユーザー アクションに関連付けられたデバッグ メッセージ。
locale リクエストに関連付けられた言語コード。

通知ペイロード

次の表に、notificationLog エントリのスキーマを示します。

プロパティ 説明
requestId 通知リクエスト ID。
structName 通知構造体の名前(「ObjectDetection」など)。
status 通知のステータス

ログへのアクセス

プロジェクトの Cloud Logging にアクセスする手順は次のとおりです。

  1. Cloud Platform Console で、プロジェクト ページに移動します。

    プロジェクト ページに移動

  2. スマートホーム プロジェクトを選択します。

  3. [オペレーション] で、[ロギング] > [ログ エクスプローラ] を選択します。

ロギングデータへのアクセスは、Actions プロジェクトの Identity and Access Management(IAM)で管理されます。ロギングデータの役割と権限について詳しくは、Cloud Logging のアクセス制御をご覧ください。

ログエントリは、Cloud Logging の保持ポリシーに従って 30 日間保持され、スケジュールに沿って削除されます。ログ エクスプローラのインターフェースを使用し、必要に応じてエントリを削除することもできます。

ログレベルの設定

スマートホーム プロジェクトは、デフォルトでエラーログを受信するよう設定されています。また、成功ログも受け取ることもできます。これは、開発段階において複数のエージェントからすべてのログを収集したい場合に便利です。ロギングの無料割り当てを超過した場合、プロジェクトの追加料金が発生することがあります。

プロジェクトのログレベルは、次の方法で制御できます。

  1. Actions Console でプロジェクト ページに移動します。

    Actions Console を開く

  2. スマートホーム プロジェクトを選択します。

  3. [Develop](開発)タブを選択し、サイドバーの [Actions](アクション)をクリックします。

  4. [Log control ingestion](ログ制御の取り込み)プルダウン リストで [All](すべて)を選択します。

ログの除外

ログの除外

ロギングクエリ言語を使用してログの除外を設定すると、ログをより柔軟にカスタマイズできます。ロギングクエリ言語はログ エクスプローラでも使用されているため、ログ エクスプローラを使用してクエリを作成できます。

除外フィルタを作成する手順については、こちらのガイドをご覧ください(_Default シンクの除外フィルタを設定します)。

プロジェクトでの Cloud Logging の使用方法について詳しくは、次のドキュメントをご覧ください。

  • 料金: 無料割り当てと超過料金について説明しています。
  • 割り当てと上限: ロギングの使用量に関する制限と保持ポリシーについて説明しています。
  • 高度なログクエリ: ログデータのクエリと分析を、高度な式を使用して行う方法について説明しています。