スマートホームのサービス停止のモニタリング

1. 始める前に

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

dd44868a4ff2df6e.png

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

前提条件

学習内容

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

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

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

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

データにアクセスする最初のステップとして、Google Home ダッシュボードを確認します。Google Cloud コンソールにログインし、[オペレーション] > [モニタリング] > [ダッシュボード] に移動します。利用可能なダッシュボードがいくつか表示されます。スマートホーム用のダッシュボードには「Google Home Analytics」という接頭辞が付いています。

317697e52ced2437.png

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

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

f8bfd69286c569a4.png

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

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

f511fafd3aaaa1eb.png

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

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

Metrics Explorer

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

Google Cloud には、スマートホームに関連しない指標も含め、さまざまな指標が用意されています。スマートホーム向けの指標は「actions.googleapis.com/smarthome_action/...」リソースに記載されており、指標選択ボックスに「smarthome」と入力すると簡単に検索できます。

538d851edfd34764.png

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

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

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

b1c18141d15a0e09.png

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

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

3. 成功指標

統合の成功をトラッキングする場合は、リクエスト数指標から計算された成功率をベースライン指標として使用するか、より専門的なアプローチで成功確率を使用します。

成功率

成功率は、正常に完了したリクエスト数をすべてのリクエスト数で割って計算されます。このデータには、Google Home アナリティクス ダッシュボードの [フルフィルメントの成功率] グラフからアクセスできます。

55ea8930fbf48d9e.png

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

また、プロジェクトのパフォーマンスの低下をトラッキングするには、より専門的なアプローチが必要であると考えられます。そのため、現在のフルフィルメントの成功率が過去の標準からどの程度逸脱しているかに基づいて変化する信頼度指標を作成しました。

信頼度指標

プロジェクトの停止は、さまざまな形や規模で発生する可能性があります。数時間から数分間しか持続しないため、特定が困難な場合があります。このため、プロジェクトに信頼性指標が作成されています。この指標は、過去のパフォーマンスに基づいて信頼性を予測するための正規化された値を提供します。信頼度指標にアクセスするには、Metrics Explorer で smarthome を検索し、[Execution success confidence] を選択します。

ab467a1777281526.png

スマートホームの統合のパフォーマンスが過去のパフォーマンス(7 日間の平均)以上の場合、この指標は最大値(1.0)を出力します。成功率が 4 標準偏差(7 日間分)以上ずれている場合、この指標は最小値(0.0)を出力します。標準偏差が小さすぎる場合(2.5% 未満)、この指標の 0.0 の値は、成功率が 10% 低下した場合に基づいています。

中間のすべてのケースで、この指標は 1.0(停止がないと完全に確信している)から 0.0(停止があると完全に確信している)までの値を提供します。

そのため、アラートを設定する際(次のセクションで説明します)は、しきい値として 0.5 の値を使用することをおすすめします。これは、2 つの標準偏差、または 5% の減少のうち、大きい方に対応します。

4. アラートの設定

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

アラート ポリシーの作成

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

6e417d88c2274b3d.png

アラート ポリシーの作成には、次の 3 つのステップがあります。まず、条件を追加して、トラッキングする内容を決定する必要があります。[条件を追加] ボタンを押すと、Metrics Explorer に似たウィンドウが表示され、条件を構成するための追加のコントロールが表示されます。

df1ccf7da741e1c7.png

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

4192e0f4ea00dd28.png

条件トリガー - アラートをトリガーするタイミングを決定する主な構成です。[Any time series violates] を選択します。指標にしきい値を設定し、値が超過しているかどうかをモニタリングするためです。

条件 - 値がしきい値を下回ったときにアラートをトリガーするため、[下回っている] に設定します。この指標では、1.0 は統合が正常に機能していることを意味し、0.0 は確実な停止を示します。

しきい値 - この値を 0.5 に設定すると、最良の結果が得られる信頼度指標が作成されます。アラートの頻度を上げ、重大でないインシデントでも通知を受け取るには、この値を増やします(最大 1.0)。その後、より深刻な問題のみをアラートとして受け取るようにするには、この値を下げてみます(最小値は 0.0)。

For - アラートをトリガーするまでのサービス停止時間の長さを指定します。この設定を [最新の値] に保ち、しきい値を超えたポイントに対してアラートを受け取ることをおすすめします。信頼性指標は 15 分ごとに公開され、その期間の平均成功率が示されます。

条件の追加が完了したら、次は通知チャンネルを選択します。最も簡単な通知方法はメール通知アラートです。[通知チャンネル] プルダウンに表示されているメールアドレスを選択できます。

3cc10629830e7f13.png

[Notify on incident closure] オプションをオンにすると、インシデントがクローズされたときに別の通知が送信されます。その場合は、[インシデントの自動クローズ期間] も選択する必要があります。デフォルトでは 7 日間です。

最後のステップとして、アラートに名前を付け、通知に含めるドキュメントを追加します。

686fb1c537fee10.png

特に、アラートを受け取るユーザーが自分ではない場合は、ドキュメントを提供することをおすすめします。インシデント発生時に確認する場所や、トリアージとデバッグの方法などの手順を追加すると、サービス停止時に役立ちます。必要に応じて、トラブルシューティング ガイドを参照してください。

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

c71a001e4df035ee.png

5. サービス停止の軽減

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

アラートの受信

この Codelab で使用したアラート チャンネルはメールでした。設定後、アラートが届かず(サービスが停止しないように)なることを願いますが、アラートが届いた場合は、次のような通知が表示されます。

43217b0a145c2cd.png

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

Monitoring Incident

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

fdd883a9604ed981.png

特定のインシデントをクリックすると、停止時間や重大度など、停止に関する詳細が表示されます。

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

6. 完了

17d485868a6771bc.png

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

次のステップ

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

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