このドキュメントでは、スマートホーム アクションの使用状況をモニタリングする方法と、イベントログにアクセスする方法について説明します。Google Cloud プロジェクトからこれらの機能にアクセスし、発生した問題のデバッグを行うことができます。
モニタリング
スマートホーム アクションの使用状況に関する有用な指標は、Cloud Monitoring を使用して入手できます。ダッシュボードを作成してアラートを設定し、プログラムから指標データにアクセスできます。
サポートされている指標
Cloud Monitoring は、assistant_action_project
リソースタイプをモニタリングして以下の指標を提供します。
指標 | 種類 | 説明 |
---|---|---|
smarthome_action/request_count |
DELTA |
execution_type 、status 、trait とラベル付けされたインテント リクエストの数。
execution_type (文字列): スマートホーム インテントのタイプ。
status (文字列): リクエストの結果。
trait (文字列): スマートホーム デバイスのトレイト。関連するトレイトがないイベントには、UNKNOWN というラベルが付けられます。
|
smarthome_action/request_latencies |
CUMULATIVE、DISTRIBUTION |
execution_type 、status 、trait とラベル付けされたインテント リクエストのレイテンシの分布。
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 |
intent 、status 、app version とラベル付けされたローカル イベントの数。
intent (文字列): ローカル フルフィルメントのインテント タイプ。
status (文字列): イベントの結果。
version (文字列): ローカル フルフィルメントのアプリ バージョン。
|
指標へのアクセス
プロジェクトの Cloud Monitoring にアクセスする手順は次のとおりです。
Cloud Platform Console で、プロジェクト ページに移動します。
スマートホーム プロジェクトを選択します。
[オペレーション] で、[モニタリング] > [Metrics Explorer] を選択します。
スマートホーム ダッシュボード
スマートホーム プロジェクトでは、SmartHome Analytics ダッシュボードを利用できます。このダッシュボードでは、フルフィルメントの使用状況を示す以下の指標をクラウドとローカルに分けてグラフで確認できます。
グラフ | クラウド | ローカル | 全体 |
---|---|---|---|
リクエスト総数 | |||
リクエスト成功率 | |||
実行の内訳 | |||
クエリの内訳 | |||
95 パーセンタイル レイテンシ | |||
アクティブ ユーザー数(1 日、1 週間、1 か月) | |||
スマートホーム エラーの内訳 | |||
ローカル フルフィルメント エラー(アプリ バージョンごと) | |||
リクエストの平均レイテンシ |
プロジェクトのスマートホーム ダッシュボードにアクセスする手順は次のとおりです。
Actions Console でプロジェクト ページに移動します。
スマートホーム プロジェクトを選択します。
[Analytics](分析)タブを選択し、[Go to Google Cloud Platform](Google Cloud Platform に移動)をクリックします。
関連リソース
プロジェクトで Cloud Monitoring を使用する方法について詳しくは、次のドキュメントをご覧ください。
ロギング
スマートホーム アクションのイベントログにアクセスするには、Cloud Logging を使用します。Cloud Console でイベントログを確認したり、Google Cloud Pub/Sub を使用して他のアプリケーションにエクスポートしたりできます。
Cloud Logging は次のリソースタイプを提供します。
リソースタイプ | 表示名 | 説明 | ラベル |
---|---|---|---|
assistant_action_project |
Google アシスタント アクション プロジェクト | アシスタント アクションに関連付けられた Google Cloud プロジェクトのコンテナ。 |
|
スマートホーム イベント
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 にアクセスする手順は次のとおりです。
Cloud Platform Console で、プロジェクト ページに移動します。
スマートホーム プロジェクトを選択します。
[オペレーション] で、[ロギング] > [ログ エクスプローラ] を選択します。
ロギングデータへのアクセスは、Actions プロジェクトの Identity and Access Management(IAM)で管理されます。ロギングデータの役割と権限について詳しくは、Cloud Logging のアクセス制御をご覧ください。
ログエントリは、Cloud Logging の保持ポリシーに従って 30 日間保持され、スケジュールに沿って削除されます。ログ エクスプローラのインターフェースを使用し、必要に応じてエントリを削除することもできます。
ログのクエリ
Google Cloud Platform では、複数のシステムを使用してプロジェクトにログを送信します。必要なログを見つけるには、クエリを作成してログをフィルタする必要があります。クエリを作成するには、「期間」または「リソース」を指定するか、カスタム エントリを記述します。
「期間」を指定する場合は、ログ エクスプローラで期間プルダウンをクリックし、いずれかのオプションを選択します。これにより、指定した期間内に発生したログがフィルタされます。
「リソース」を指定する場合は、ログ エクスプローラのリソース プルダウンをクリックし、[Google アシスタント アクション プロジェクト] を選択します。これにより、スマートホーム プロジェクトで発生したログがフィルタされます。
ログ エクスプローラの [クエリ] フィールドを使用して、カスタム エントリを記述することもできます。たとえば次のカスタム エントリは、スマートホーム プロジェクトで発生した照明関連のエラーを返します。
resource.type = "assistant_action_project" AND severity = ERROR AND jsonPayload.executionLog.executionResults.actionResults.device.deviceType = "LIGHT"
ログを効果的にクエリするその他の例については、クエリ ライブラリをご覧ください。
ログレベルの設定
スマートホーム プロジェクトは、デフォルトでエラーログを受信するよう設定されています。また、成功ログも受け取ることもできます。これは、開発段階において複数のエージェントからすべてのログを収集したい場合に便利です。ロギングの無料割り当てを超過した場合、プロジェクトの追加料金が発生することがあります。
プロジェクトのログレベルは、次の方法で制御できます。
Actions Console でプロジェクト ページに移動します。
スマートホーム プロジェクトを選択します。
[Develop](開発)タブを選択し、サイドバーの [Actions](アクション)をクリックします。
[Log control ingestion](ログ制御の取り込み)プルダウン リストで [All](すべて)を選択します。
ログの除外
ログの除外
ロギングクエリ言語を使用してログの除外を設定すると、ログをより柔軟にカスタマイズできます。ロギングクエリ言語はログ エクスプローラでも使用されているため、ログ エクスプローラを使用してクエリを作成できます。
除外フィルタを作成する手順については、こちらのガイドをご覧ください(_Default
シンクの除外フィルタを設定します)。
ログベースの指標
ログベースの指標を使用すると、ログ内のパターンを追跡して分析できます。カスタム チャートを作成し、ログベースの指標にアラートを設定することもできます。
スマートホームのログベースの指標を初めて使用する際は、カウンタ指標の作成でログベースの指標の作成方法を参照してください。
関連リソース
プロジェクトでの Cloud Logging の使用方法について詳しくは、次のドキュメントをご覧ください。
- 料金: 無料割り当てと超過料金について説明しています。
- 割り当てと上限: ロギングの使用量に関する制限と保持ポリシーについて説明しています。
- 高度なログクエリ: ログデータのクエリと分析を、高度な式を使用して行う方法について説明しています。
学習用リソース
Google では、モニタリング機能とロギング機能を使用してスマートホームをデバッグする方法を理解するための追加の学習リソースを提供しています。
- Codelab: スマートホームのデバッグ: スマートホームのクラウド統合をデバッグするためのクイック スタートガイドです。
- Codelab: ローカルホームのデバッグ: スマートホームのローカル統合をデバッグするためのクイック スタートガイドです。