分布指標

このドキュメントでは、Distribution 値のタイプの指標データを表示するグラフを作成して解釈する方法について説明します。この値は、個別測定値があまりに多すぎて収集できないが、平均やパーセンタイルなどの統計情報が貴重な場合にサービスで使用されます。 たとえば、アプリケーションが HTTP トラフィックに依存している場合、HTTP レスポンスのレイテンシをキャプチャする分布値の指標を使用して、HTTP リクエストの完了速度を評価できます。

ヒストグラムの作成方法を説明するために、リクエストの HTTP レイテンシを測定し、分布値タイプを持つ指標を使用してそのデータを報告するサービスを検討してください。このデータは 1 分ごとに報告されます。このサービスはバケットと呼ばれる指標の値の範囲を定義し、各バケットに分類される測定値の数を記録します。たとえば、HTTP リクエストが完了すると、リクエストのレイテンシ値を含むバケットのカウントが増分されます。これらのカウントにより、その分の値のヒストグラムが作成されます。

1 分間隔で測定されるレイテンシが 5、1、3、5、6、10、14 であるとします。バケットが [0, 4)、[4, 8)、[8, 12)、[12, 16) の場合、このデータのヒストグラムは [2, 3, 1, 1] です。次の表は、各測定値が各バケットのカウントにどのように影響するかを示しています。

バケット レイテンシの測定 バケット内の値の数
[12, 16) 14 1
[8, 12) 10 1
[4, 8) 5, 5, 6 3
[0, 4) 1, 3 2

このデータが時系列に書き込まれると、Point オブジェクトが作成されます。分布値を持つ指標の場合、そのオブジェクトには値のヒストグラムが含まれます。このサンプリング期間では、Point に [2、3、1、1] が含まれます。個々の測定値は時系列に書き込まれません。

次の表に、ヒストグラムのシーケンスを示します。テーブルの各列は、1 分間のレイテンシ データを表します。

バケット
1:00 のヒストグラム

1:01 のヒストグラム

1:02 のヒストグラム

1:03 のヒストグラム
[12, 16) 1 6 0 1
[8, 12) 1 0 2 2
[4, 8) 3 1 1 8
[0, 4) 2 6 10 3

ヒートマップのグラフ

ヒートマップ グラフは、分布値を持つ単一の時系列を表示するように設計されています。これらのグラフでは、X 軸は時間、Y 軸はバケット、色は値を表します。色が明るいほど高い値を示します。たとえば、ヒートマップの濃い領域は、黄色や白の領域よりもバケット数が少ないことを示しています。

次の図は、前の例のヒートマップの表現の 1 つです。

例のヒートマップ グラフ。

前の例のヒートマップでは、最小のバケット数 0 を黒、最大バケット数 10 を黄色で表しています。赤とオレンジは、両極にあるこの 2 つの値の中間値を表します。

ヒートマップ グラフには単一の時系列しか表示できないため、複数の時系列がある場合は集計オプションを設定して、単一の時系列に結合する必要があります。たとえば、Metrics Explorer を使用して、時系列の合計を表示するヒートマップ グラフを作成するには、次のようにします。

  1. Cloud Console で [Monitoring] を選択するか、次のボタンをクリックします。
    [Monitoring] に移動
  2. ナビゲーション パネルで、[Metrics Explorer] を選択します。
  3. 分布値の指標とリソースを選択します。たとえば、RTT レイテンシの指標と VM インスタンス リソースを選択します。
  4. Metrics Explorer のツールバーで、[折れ線グラフ] をクリックしてから、[ヒートマップ] を選択します。
  5. 構成ペインを使用して、時系列を単一の時系列に結合します。

    • [Group by] フィールドが空であることを確認します。
    • [Aggregator] として [sum] を選択します。

折れ線グラフと棒グラフ

折れ線グラフ、積み上げ棒グラフ、積み上げ折れ線グラフは、スカラー データを表示するように設計されていて、分布値を表示できません。これらのチャートタイプの分布値を含む指標を表示するには、ヒストグラム値をスカラー値に変換する必要があります。たとえば、ヒストグラムの値の合計を計算したり、パーセンタイルを選択したりできます。

たとえば、次の表の各行には、タイムスタンプ、ヒストグラム、ヒストグラム値の合計が含まれています。

時間 ヒストグラム ヒストグラム値の合計
1:00 [2, 3, 1, 1] 7
1:01 [6, 1, 0, 6] 13
1:02 [10, 1, 2, 0] 13
1:03 [3, 8, 2, 1] 14

上の表では、ヒストグラム値の合計を X-Y プロットで表示できます。

HTTP レイテンシ情報を格納する指標では、完了した HTTP リクエストの数が間接的に表されるため、合計は意味のある値です。上の表のデータは、HTTP リクエストの完了の割合が低いものの、比較的一定であることを示します。

サンプルの折れ線グラフ。

折れ線グラフには、スカラー値を持つ時系列のみが表示されます。分布値の指標を折れ線グラフで表示するには、集計フィールドを使用して分布値をスカラー値に変換します。たとえば、Metrics Explorer を使用して分布値の指標の 99 パーセンタイルを表示するには、次のようにします。

  1. Cloud Console で [Monitoring] を選択するか、次のボタンをクリックします。
    [Monitoring] に移動
  2. ナビゲーション パネルで、[Metrics Explorer] を選択します。
  3. 分布値の指標とリソースを選択します。たとえば、RTT レイテンシの指標と VM インスタンス リソースを選択します。
  4. Metrics Explorer のツールバーに折れ線グラフ が表示されていることを確認します。
  5. 構成ペインで、[Aggregator] に [99 パーセンタイル] を選択します。

集計指標と分布指標

集計は、時系列内のポイントを正則化し、複数の時系列を結合するプロセスです。分布型の指標の場合の集計は、整数型または倍精度型の値を持つ指標の場合と同じです。ただしグラフタイプでは、時系列のアライメントとグループ化に使用される選択にいくつかの要件が適用されます。

ヒートマップのグラフ

ヒートマップ グラフには、分布値の時系列が 1 つ表示されます。複数の時系列がある場合は、配置指定子グループ化関数を使用して単一の時系列を作成する必要があります。

グラフにヒートマップが表示されたら、合計またはデルタ Aligner を選択します。これらの関数は、同じアライメント期間内にある単一の時系列のすべてのサンプルをバケットレベルで結合します。結果は分布値になります。たとえば、ある時系列の 2 つの隣接するサンプルが [2, 3, 1, 1] と [2, 5, 4, 1] の場合、合計の配置指定子は [4, 8, 5, 2] を生成します。

グループ化関数は、異なる時系列を組み合わせる方法を定義します。この関数は、アグリゲータまたはレデューサともいいます。ヒートマップの場合は、グループ化関数を合計関数に設定します。合計関数は、すべてのヒストグラムで同じバケットの値を加算し、新しいヒストグラムを作成します。たとえば、timeseries-A の値 [2, 3, 1, 1] と timeseries-B の値 [1, 5, 2, 2] の合計は [3, 8, 3, 3] です。

折れ線グラフ

折れ線グラフには、スカラー値の時系列のみが表示されます。分布値の指標を折れ線グラフで表示するには、配置指定子またはグループ化関数を使用して、分布値をスカラー値に変換します。

  • パーセンタイル配置指定子は、分布値をスカラー値に変換します。これらの配置指定子では、時系列のグループ化は任意です。

  • 合計とデルタの配置指定子は、分布値をスカラー値に変換しません。これらの配置指定子を使用する場合は、分布値をスカラー値に変換するグループ化関数を選択します。

たとえば、分布値の指標のすべての時系列の 99 パーセンタイルを表示するようにダッシュボードで折れ線グラフを構成するには、次のようにします。

  1. Cloud Console で [Monitoring] を選択するか、次のボタンをクリックします。
    [Monitoring] に移動
  2. ナビゲーション パネルで、[ ダッシュボード] を選択し、表示または編集するダッシュボードを選択します。
  3. [ダッシュボードの編集] ボタンが表示されている場合は、このボタンをクリックします。
  4. グラフ ライブラリから折れ線グラフのウィジェットを選択して、ダッシュボードに折れ線グラフを追加します。
  5. 折れ線グラフの構成を変更して、特定のリソースの分布値の指標を表示します。たとえば、RTT レイテンシの指標と VM インスタンス リソースを選択します。
  6. パーセンタイル配置指定子を使用するようにグラフを構成します。

    • [基本] タブ: [グループ化] をクリアして、[99 パーセンタイル] を選択します。
    • [詳細設定] タブ: 前処理ステップで [パーセンタイル] を選択し、メニューで 99 パーセンタイルを選択します。また、[グループ条件] フィールドは空で、group-by 関数が [なし] に設定されていることも確認します。

結果のグラフには、時系列ごとに 1 つずつ複数の線を表示できます。

別の例として、分布値の指標の時系列の 99 パーセンタイルである単一の時系列を表示するとします。このグラフを構成するには、前のシーケンスの最後のステップを次のステップで置き換えます。そこで、合計の配置指定子を指定し、グループ化関数を設定します。

  1. [Advanced] タブを選択します。
  2. 前処理ステップで [前処理ステップなし] を選択します。
  3. [アライメント関数] を [sum] に設定します。
  4. [グループ条件] フィールドが空であることを確認し、[Group by function] を [99 パーセンタイル] に設定します。

結果のグラフには、単一の線が表示されます。

次のステップ

指標のバケットモデルの決定方法とパーセンタイルの解釈方法については、パーセンタイルと分布値の指標をご覧ください。