ディストリビューション

概要

ディストリビューションは、フラッシュ間隔の間に複数のホストから送信された値を集計して、インフラストラクチャー全体の統計的分布を測定するメトリクスタイプです。

グローバルディストリビューションは、サービスのような論理的オブジェクトを、基礎となるホストから独立してインスツルメントします。Agent 側で集計するヒストグラムとは異なり、グローバルディストリビューションはフラッシュインターバルの間に収集した全ての生データを送信し、集計は Datadog の DDSketch データ構造を使ってサーバー側で行われます。

ディストリビューションは、他のメトリクスタイプ (カウント、レート、ゲージ、ヒストグラム) では提供されない、強化されたクエリー機能および構成オプションを提供します。

  • パーセンタイル集計の計算: ディストリビューションは、生の非集計データを表す DDSketch データ構造として保存され、すべてのホストの生データに対してグローバルに正確なパーセンタイル集計 (p50、p75、p90、p95、p99 または任意のパーセンタイル (小数点以下 2 桁まで)) を計算することが可能です。パーセンタイル集計を有効にすると、以下のような高度なクエリ機能を利用できます。

    • 任意の時間枠における単一パーセンタイル値:

      “私のアプリケーションの 99.9 パーセンタイルのロード時間は、この 1 週間でどうなったか?”

    • 任意の時間枠における標準偏差:

      “この 1 か月間の 私のアプリケーションの CPU 消費量の標準偏差 (stddev) はいくらか?”

    • メトリクスモニターのパーセンタイルしきい値:

      “私のアプリケーションの p95 のリクエストレイテンシーが過去 5 分間に 200 ms を超えたら警告を出す。”

    • しきい値クエリ:

      “私のサービスへのリクエストの 95% が 5 秒以内に完了する 30 日間の SLO を定義したい。”

  • タグ付けのカスタマイズ: この機能を使用すると、ホストレベルの詳細度を必要としない場合にカスタムメトリクスのタグ付けスキームを制御することができます (チェックアウトサービスの毎秒トランザクションなど)。

実装の詳細については、開発ツールのセクションを参照してください。

注: ディストリビューションは新しいメトリクスタイプであるため、Datadog への送信時に新しいメトリクス名の下でインスツルメンテーションを行う必要があります。

高度なクエリ機能の有効化

gaugeshistograms などの他のメトリクスタイプと同様に、ディストリビューションでは countminmaxsumavg の集計が利用可能です。ディストリビューションは最初、他のメトリクスと同じようにタグ付けされ、カスタムタグはコードで設定されます。その後、メトリクスを報告したホストに基づいて、ホストタグに解決されます。

しかし、Metrics Summary ページでは、ディストリビューション上のすべてのクエリ可能なタグについて、グローバルに正確なパーセンタイル集計を計算するなどの高度なクエリ機能を有効にすることができます。これは、p50p75p90p95p99、またはユーザーが選択した任意のパーセンタイル (99.99 のように小数点以下 2 桁まで) の集計を提供するものです。高度なクエリを有効にすると、しきい値クエリと標準偏差も有効になります。

ディストリビューションメトリクスにパーセンタイル集計を適用することを選択した後、これらの集計はグラフ表示の UI で自動的に利用できるようになります。

パーセンタイル集計は、他の様々なウィジェットやアラートで使用することができます。

  • 任意の時間枠における単一パーセンタイル値:

    “私のアプリケーションの 99.9 パーセンタイルのリクエスト期間は、この 1 週間でどうなったか?”

単一のメトリクスの 99.99 パーセンタイル集計の単一値 (7.33s) を表示するクエリ値ウィジェット
  • メトリクスモニターのパーセンタイルしきい値 “私のアプリケーションの p95 のリクエストレイテンシーが過去 5 分間に 200 ms を超えたら警告を出す。”
モニターのアラート条件にドロップダウンで設定できるパーセンタイルしきい値

しきい値クエリ

しきい値クエリは公開ベータ版です。

ディストリビューションメトリクスのグローバルで正確なパーセンタイルを DDSketch によって計算して有効にすると、数値のしきい値を超えたり下回ったりする生のディストリビューションメトリクス値の数をカウントできるしきい値クエリが利用可能になります。この機能を利用して、異常な数値のしきい値と比較したエラーや違反の回数をダッシュボードでカウントすることができます。また、しきい値クエリを使用して、「過去 30 日間に 95% のリクエストが 10 秒以内に完了した」というような SLO を定義することも可能です。

パーセンタイルのディストリビューションのしきい値クエリでは、メトリクスの送信前にしきい値を事前に定義する必要がなく、Datadog でしきい値を柔軟に調整することができます。

しきい値クエリを使用するには:

  1. Metrics Summary ページで、ディストリビューションメトリクスのパーセンタイルを有効にします。
  2. “count values…” アグリゲーターを使用して、選択したディストリビューションメトリクスをグラフ化します。
  3. しきい値と比較演算子を指定します。

同様に、しきい値クエリを使用してメトリクスベースの SLO を作成することができます。

  1. Metrics Summary ページで、ディストリビューションメトリクスのパーセンタイルを有効にします。
  2. 新しいメトリクスベースの SLO を作成し、“count values…” アグリゲータを使用して選択したディストリビューションメトリクスに対するクエリで、“good” イベントの数を分子として定義します。
  3. しきい値と比較演算子を指定します。
    SLO のしきい値クエリ

タグ付けのカスタマイズ

ディストリビューションには、ホストレベルの詳細度が意味を持たない場合にメトリクスへのタグ付けを制御する機能があります。タグのコンフィギュレーションは維持したいタグの_許可リスト_になります。

タグ付けをカスタマイズするには:

  1. Metrics Summary テーブルでカスタムディストリビューションのメトリクス名をクリックし、メトリクス詳細のサイドパネルを開きます。
  2. Manage Tags ボタンをクリックして、タグコンフィギュレーションモーダルを開きます。
  3. Custom… タブをクリックして、クエリ用に維持したいタグをカスタマイズします。

: 許可リストに基づくタグのカスタマイズでは、タグの除外はサポートされていません。! で始まるタグは追加できません。

Manage Tags ボタンでディストリビューションにタグを構成する

監査イベント

タグの構成やパーセンタイルの集計を変更すると、イベントエクスプローラーにイベントが作成されます。このイベントでは、変更内容が説明され、変更を行ったユーザーが表示されます。

ディストリビューションメトリクスでタグの構成を作成、更新、または削除した場合は、次のイベント検索の例を確認できます。

https://app.datadoghq.com/event/stream?tags_execution=and&per_page=30&query=tags%3Aaudit%20status%3Aall%20priority%3Aall%20tag%20configuration

パーセンタイル集計をディストリビューションメトリクスに追加または削除した場合、次のイベント検索の例を見ることができます。

https://app.datadoghq.com/event/stream?tags_execution=and&per_page=30&query=tags%3Aaudit%20status%3Aall%20priority%3Aall%20percentile%20aggregations

その他の参考資料

お役に立つドキュメント、リンクや記事: