Histogram metrics in Splunk Observability Cloud 🔗
Splunk Observability Cloud はヒストグラムデータをサポートしています。インストルメンテーションされたアプリケーションやサービスから Splunk Observability Cloud に送信したヒストグラムメトリクスデータを使用して、グラフやディテクターなどを作成できます。
ヒストグラムを理解する 🔗
ヒストグラムはオブザベーションの分布を表します。ヒストグラムには数値の連続値が必要です。連続値の例としては、時間、サイズ、温度などがあります。次のグラフは、応答時間をミリ秒単位で表したヒストグラムの視覚的表現です:
ヒストグラムは、数値の境界を持つ隣接する区間であるバケットにデータを格納します。前のヒストグラムのバケットまたはバーは、100ミリ秒にわたります。各バーのサイズは、各区間内のオブザベーションの数によって決まります。バーが高いほど、その区間内にあるデータポイントが多くなります。
すべてのヒストグラムで、オブザベーションの総数、最小値と最大値、すべての値の合計、平均値、離散パーセンタイル値を計算できます。Splunk Observability Cloud はヒストグラム用の SignalFlow 関数を提供しており、これを使用してヒストグラムをカスタマイズしたり、データに対して計算を実行したりできます。
ヒストグラムは、異なるデータセットを一目で比較したり、他の方法では検出しにくいデータの傾向を特定したりするのに便利です。例えば、ヒストグラムは、」昨日のデータベースの応答時間の90パーセンタイルは?」といった質問に答えることができます。
When to use histogram metrics 🔗
ヒストグラムは、他のメトリクスでは再現が難しい方法でデータを要約することができます。ヒストグラムバケットを使えば、データセット全体を分析してすべてのデータポイントを見る必要なしに、連続データの時間的な分布を調べることができます。ヒストグラムは、バケットとともに、sum
、min
、max
、count
のように、複数の統計量を1つのデータポイントにまとめることができます。
サービスレベル目標(SLO) 🔗
ヒストグラムは特に、パフォーマンスと可用性のサービスレベル目標(SLO)を表すのに適しています。可用性 SLO の例としては、全リクエストのパーセンタイル n
が特定の時間未満で処理されるかどうかや、アプリの画面のパーセンタイル n
が正常にロードされるかどうかをチェックすることがあります。
単一のパーセンタイルまたは分位をカバーするメトリクスとは異なり、ヒストグラムには、追跡する必要のあるパーセンタイルまたは分位が単一のメトリクスに含まれています。これにより、最初の検出後にデータを深く調査することが容易になります。例えば、応答時間の99パーセンタイルのアラートを受け取った場合、ヒストグラムを使用すると、他のパーセンタイルを探索できます。
詳細は Splunk Observability Cloudにおけるサービスレベル目標(SLO)管理の概要 を参照してください。
計算されたメトリクスの代わりのヒストグラム 🔗
ヒストグラムには、インフラストラクチャを使用して計算する代わりに、Splunk Observability Cloud でパーセンタイルやその他の統計情報を計算するために使用できるデータが含まれています。また、ヒストグラムを送信すると、送信される MTS の数が少なくなり、サブスクリプションの使用量が減ります。
たとえば、service.response_time.upper_90
と service.response_time.upper_95
メトリクスを送信して、インフラストラクチャの主要サービスのレスポンスタイムを90パーセンタイルと95パーセンタイルで追跡する場合、レスポンスタイムの分布全体のヒストグラムデータを送信できるため、2つの別々の MTS を送信する必要がなくなります。
明示的バケットヒストグラム 🔗
明示的バケットヒストグラムは、あらかじめ定義されたバケット境界を持つヒストグラムです。バケットの境界を自分で定義することの利点は、自分の状況で意味のある制限を使えることです。
例えば、以下の Java コードは、バケットの境界を明示した OpenTelemetry ヒストグラムを作成します:
void exampleWithCustomBuckets(Meter meter) {
DoubleHistogramBuilder originalBuilder = meter.histogramBuilder("people.ages");
ExtendedLongHistogramBuilder builder = (ExtendedLongHistogramBuilder) originalBuilder.ofLongs();
List<Long> bucketBoundaries = Arrays.asList(0L, 5L, 12L, 18L, 24L, 40L, 50L, 80L, 115L);
LongHistogram histogram =
builder
.setAdvice(advice -> advice.setExplicitBucketBoundaries(bucketBoundaries))
.setDescription("A distribution of people's ages")
.setUnit("years")
.build();
addDataToHistogram(histogram);
}
注釈
現在、Splunk Observability Cloud は明示的なバケットヒストグラムのみをサポートしています。
Get histogram data into Splunk Observability Cloud 🔗
ヒストグラムデータを Splunk Observability Cloud に取り込む方法と、既存のレポート要素を移行する方法については、Get histogram data into Splunk Observability Cloud を参照してください。