Google Home の最新ニュースと新機能をご確認ください。登録

スマートホームの停止を監視する

1. 始める前に

スマートホームをデバッグするの Codelab で説明したとおり、スマートホーム プロジェクトには指標とログを公開しています。これらの指標は、スマートホーム アクションに問題があるかどうかを識別する際に役立ちます。またログは、そうした問題を解決するための詳細を確認するのに便利です。

dd44868a4ff2df6e.png

プロジェクトに提供される指標を使用してアラートを設定し、自動的な方法で停止をモニタリングし、サービスの中断中に通知を受け取ることができます。プロジェクトの中断を際立たせるための信頼指標を公開しています。この Codelab では、Google Cloud Platform で利用可能な他のすべてのアラートツールと併せてこの Codelab について説明します。

前提条件

ラボの内容

  • プロジェクトのパフォーマンスの問題とサービス中断をモニタリングする方法。
  • しきい値ベースのアラートを作成し、中断時に通知を受け取る方法。
  • プロジェクトに提供された信頼指標を使用してサービス停止を検出する方法。

2. パフォーマンスのモニタリング

Google スマートホーム エコシステムとの統合を成功させるには、パフォーマンスのモニタリングが不可欠です。Google Cloud Platform で、スマートホーム デベロッパーに一連のモニタリング ツールを提供しています。これらのツールを使用すると、プロジェクトのパフォーマンスを把握できます。

ダッシュボードへのアクセス

データにアクセスするには、まず Google Cloud Console にログインし、[オペレーション] > [モニタリング] > [ダッシュボード] に移動して、Google Home のダッシュボードを確認します。さまざまなダッシュボードが利用可能であり、スマートホームのダッシュボードには Google Home Analytics という接頭辞が付いています。

2016/07/01 317697e52ced2437.png

各統合タイプを表す個別のダッシュボードを作成しました。Cloud、Local、Matter の統合には独自のダッシュボードがあり、カメラ ストリーミング プロトコルのデータは Camera Quality ダッシュボードに表示されます。これらのダッシュボードにデータが表示されるのは、対応するタイプを統合している場合と、リクエストを処理するプロジェクトがある場合のみです。

いずれかのダッシュボードを開くと、次のようなビューが表示されます。

f8bfd69286c569a4.png

ダッシュボードには、プロジェクトによって処理されたリクエストの詳細を示すさまざまなグラフが表示されます。統合ダッシュボードでは、プロジェクトによって処理されたリクエストの合計数を示すグラフと、その統合タイプの成功率を示すグラフのほか、関連するデバイスタイプとトレイトを示す複数のグラフが表示されます。

スマートホーム アクションのパフォーマンスを評価するうえで重要なグラフは次の 3 つです。

f511fafd3aaaa1eb.png

サービスが停止している間は、一般的に、成功率の低下傾向とエラーの内訳グラフの上昇率が見られます。実行の成功率をモニタリングすると、サービスの停止を確認しながら、エラーの内訳にある上位エラーを確認できるため、デバッグに役立ちます。また、停止中にレイテンシが上昇することもあります。これは、リクエストのレイテンシ グラフで確認できます。

なお、Google Home Analytics ダッシュボードにデフォルトで表示されるビューは、スマートホームの指標データを使って作成したプロジェクト用のビューです。Metrics Explorer を使用すると、同じ基盤となる指標から独自のグラフを作成してカスタム ダッシュボードに保存することもできます。

Metrics Explorer

Metrics Explorer は、プロジェクトのデータセットの断面を可視化するためのツールです。Google Cloud Console[オペレーション] > [モニタリング] > [Metrics Explorer] に移動すると、このツールにアクセスできます。

Google Cloud には、すぐに使えるさまざまな指標が用意されています。たとえば、スマートホームに関係のない指標もあります。スマートホーム用に用意している指標は、「resources.googleapis.com/smarthome_action/...」リソースに表示され、指標選択ボックスに「smarthome」と入力することで簡単に検索できます。

538d851edfd34764.png

「smarthome」を検索すると、プロジェクトに提供したすべてのスマートホーム指標が表示されます。各指標の詳細については、ドキュメントのモニタリングとロギングのページをご覧ください。

プロジェクトをモニタリングする場合、最もシンプルな指標はリクエスト数の指標(差分指標)です。この指標は、ユーザーが開始した各スマートホーム実行のエントリを記録し、デバイスタイプ、トレイト、実行に関連する実行タイプ、結果を示すステータス フィールドなどのフィールドを記録します。

この指標を選択すると、次のような各データバケットを示す画面が表示されます。

b1c18141d15a0e09.png

基本的に、この指標に存在するデータラベルのすべての組み合わせについて、前と現在の期間の変化(差分)を記録するバケットが存在します。これらのバケットをグループ化またはフィルタして、必要なビューデータ スライスを取得できます。さらに、データは、アライメント関数(DELTA、MEAN、MEDIAN、SUM)を使用して選択された時間間隔にアライメントされます。特に必要とされる場合を除き、通常は、デルタ指標との差分調整を使用します。

Metrics Explorer を使用して Google Home アナリティクスのダッシュボードで使用できるグラフのほとんどを作成すると、後でアクセスできるようにカスタム ダッシュボードに保存できます。比率グラフのような複雑なビューを作成するには、MQL - Monitoring Query Language を使用する必要があります。

3. 成功指標

統合の成功を追跡する場合は、リクエスト数の指標を基準指標として計算する成功率、またはより専門的なアプローチの成功率を使用できます。

成功

成功率は、すべてのリクエストに対する成功したリクエストの数を除算して、すべての統合について計算されます。Google Home Analytics ダッシュボードの Fulfillment Success Rate チャートからアクセスできます。

55ea8930fbf48d9e.png

フルフィルメント成功率のチャートは、プロジェクトのパフォーマンスをモニタリングするために大変便利ですが、カスタム ダッシュボードを作成するときやアラートを設定するときにはあまり役立ちません。成功率は指標単体ではなくリクエスト数の指標に基づいているため、どちらの機能も Metrics Explorer で使用するには、Metrics Explorer の MQL(Monitoring Query Language)を使用して再作成する必要があります。

また、プロジェクトのパフォーマンスの中断を追跡するには、より専門的なアプローチが必要です。そのため Google は、現在のフルフィルメントの成功率が過去の基準からどの程度逸脱しているかによって変化する信頼指標を作成しました。

信頼度指標

サービスの停止は、形式やサイズによってプロジェクトが異なる可能性があります。数時間~数分間かかることもあるため、特定するのが難しい場合があります。そのため、プロジェクト内に信頼指標を作成し、過去のパフォーマンスに基づいて信頼性を予測するための正規化値を提供します。信頼指標にアクセスするには、Metrics Explorer でスマートホームを検索し、[Executionsuccess confidence] を選択します。

ab467a1777281526.png

スマートホームの統合が過去の掲載結果(平均 7 日)以上のパフォーマンスである場合、この指標は最大値(1.0)を出力します。成功率が 4 標準偏差(7 日間にわたって計算)の 3 倍以上を超えた場合、この指標は最小値(0.0)を出力します。標準偏差が小さすぎる(2.5% 未満)場合、この指標は成功率の 10% の低下を 0.0 として表します。

すべての中間のケースで、この指標は 1.0(サービス停止がないことを確信できる)から 0.0(サービス停止の発生に対する確実性が最も高い)の値を提供します。

そのため、アラートを設定する場合(次のセクションで説明します)は、しきい値として 0.5 を使用することをおすすめします。これは、標準偏差 2 または 5% のいずれか大きい方の値に相当します。

4. アラートの設定

次のステップでは、前のステップで学んだことをすべて使ってプロジェクトにアラートを設定します。

アラート ポリシーの作成

Google Cloud Platform の自動アラートは、アラート ポリシーを使用して設定されます。アラート ポリシーには、サイドメニュー [オペレーション] > [モニタリング] > [アラート] タブからアクセスできます。[+CREATE POLICY] オプションを選択すると、新しいアラート ポリシーを作成できます。これにより、アラート ポリシー作成画面が表示されます。

6e417d88c2274b3d.png

アラート ポリシーを作成するには、3 つの部分があります。まず、条件を追加して、トラッキングする対象を決めます。[ADD CONDITION] ボタンを押すと、Metrics Explorer のようなウィンドウと、条件を構成する追加のコントロールが表示されます。

df1ccf7da741e1c7.png

ターゲットには、前のセクションで説明した信頼指標を選択します。この指標を使用して、配置指定子がデルタに設定されていることを確認します([詳細設定を表示 > 配置指定子])。次のステップでは、アラートの条件を構成し、次の設定を使用します。

2016-0514

Condition triggers if - アラートをトリガーするタイミングを決定するメイン構成です。[時系列の違反] を選択すると、指標にしきい値が設定され、値が超過しているかどうかをモニタリングします。

Condition - 値がしきい値を下回った場合にアラートをトリガーするため、[is above] に設定します。Google の指標では、1.0 は統合が正常に動作していることを意味し、0.0 は明確な停止を意味します。

しきい値 - この値を 0.5 に設定した場合に最良の結果を提供する、信頼度指標を作成しました。アラートの頻度を増やして、インシデントが少ない場合の通知を受け取りたい場合は、この値を大きくします(最大 1.0)。重要度の低い問題のみをアラートの対象から除外する場合は、この値を 0.0 に下げます。

設定 - アラートの期限を指定します。しきい値を超えた時点でアラートを受け取るには、この設定を最新の値にしておくことをおすすめします。信頼指標は、15 分ごとに発行され、その期間の平均的な成功率を確認できます。

条件の追加が完了したら、通知チャネルを選択します。最も簡単な通知方法はメール通知アラートです。[Notification Channels] プルダウンで、以下のメールアドレスを選択できます。

3CC10629830e7f13.png

[インシデント終了時に通知する] オプションをオンにすると、インシデントが休業とマークされた時点で、別の通知が送信されます。その場合は、インシデントの自動クローズ期間も選択する必要があります。これはデフォルトで 7 日間として指定されています。

最後に、アラートに名前を付け、通知に追加したいドキュメントを追加します。

686fb1c537fee10.png

特に、アラートを受け取れない場合は、書類の提出をおすすめします。停止時に確認する場所や、トリアージやデバッグの方法などの手順を追加すると、問題が解決する場合があります。必要に応じてトラブルシューティング ガイドを参照してください。

保存すると、[アラート] ページの [ポリシー] セクションにアラート ポリシーが表示されます。

c71a001e4df035ee.png

5. サービス停止の緩和

アラートを設定すると、指定した通知チャネルからサービス停止が発生したときに通知され、[アラート] ページにインシデント エントリが作成されます。

アラートの受信

この Codelab で提供したアラート チャネルはメールでした。一度設定すると、アラートは届かなくなります(サービス停止は発生しないはずです)。ただし、設定した場合は通知が次のように表示されます。

43217b0a145c2cd.png

アラート通知は、指定したしきい値を超える観測値と、インシデントが最初に開始されたときのタイムスタンプを示します。

インシデントのモニタリング

インシデントが発生すると、[アラート] ページのインシデント セクションにもカウントされます。

fdd883a9604ed981.png

特定のインシデントをクリックすると、継続時間や重大度など、サービス停止に関する詳細を確認できます。

アラートを受け取ったら、まず指標を確認し、サービス停止の原因となっているエラーをログで検索することをおすすめします。これらの方法について詳しくは、スマートホームをデバッグするの Codelab で復習できます。

6. 完了

17d485868a6771bc.png

これで完了です。プロジェクトの指標を使用してアラートを設定し、自動的にサービス停止をモニタリングし、サービスの中断時に通知を受け取る方法を学びました。

次のステップ

この Codelab で学んだことを活かして、追加リソースを参照しながら以下の演習に挑戦してみましょう。

  • この Codelab で学んだことを、プロジェクトに提示されている他の指標と組み合わせることができます。使用可能な指標の一覧については、[モニタリングとロギング] ページの [サポートされている指標] セクションで確認できます。
  • その他の種類の通知チャンネルについては、Google Cloud Platform ドキュメントの通知オプションのページをご覧ください。