Application Real-Time Monitoring Service (ARMS) は、分位数ベースの統計情報を提供します。このトピックでは、ARMS がメトリック分位数をどのように計算するかについて説明します。
背景情報
分位数とは、大きさの順に並べたデータセットをいくつかの等しい部分に分割する数値点です。データの分布を表すために使用されます。一般的な分位数:
P50 は中央値を表し、データを2つの等しい部分に分割する数値点です。
P75 は、データの 75% がそれより下にある数値点を示します。
P90 は、データの 90% がそれより下にある数値点を示します。
P99 は、データの 99% がそれより下にある数値点を示します。
分位数は、データ分布、およびデータ内の極値と外れ値をより直感的に理解することができます。
サンプル分位数
サンプルデータ: [2, 3, 6, 7, 8, 9, 10, 12, 14, 15, 16, 17, 18, 20]
分位数:
P50: 10
P75: 16
P90: 18
P99: 20
メトリック分位数
新しいコンソール
分位数統計機能を有効にする方法については、Java アプリケーションのカスタム設定の構成を参照してください。
古いコンソール
分位数統計機能を有効にする方法については、アプリケーション設定のカスタマイズを参照してください。
ARMS エージェントが分位数を計算する方法
ARMS エージェント v4.x 以降は、バケットに基づいてレイテンシ分位数を計算します。現在のデフォルトのバケット境界:
[0.0, 5.0, 10.0, 25.0, 50.0, 75.0, 100.0, 250.0, 500.0, 750.0, 1000.0, 2500.0, 5000.0, 7500.0, 10000.0]。
各バケットのレイテンシ間隔:
バケット 0: (-∞, 0.0]
バケット 1: (0.0, 5.0]
バケット 2: (5.0, 10.0]
バケット 3: (10.0, 25.0]
バケット 4: (25.0, 50.0]
バケット 5: (50.0, 75.0]
バケット 6: (75.0, 100.0]
バケット 7: (100.0, 250.0]
バケット 8: (250.0, 500.0]
バケット 9: (500.0, 750.0]
バケット 10: (750.0, 1000.0]
バケット 11: (1000.0, 2500.0]
バケット 12: (2500.0, 5000.0]
バケット 13: (5000.0, 7500.0]
バケット 14: (7500.0, 10000.0]
バケット 15: (10000.0, +∞]
このセクションでは、サンプル分位数セクションの例を使用して、ARMS エージェントが分位数を計算する方法について説明します。
各サンプル点について、対応するバケットを決定し、そのバケットのカウンターを 1 ずつ増やします。結果:
バケット 0: 0
バケット 1: 2
バケット 2: 5
バケット 3: 7
バケット 4: 0
バケット 5: 0
バケット 6: 0
バケット 7: 0
バケット 8: 0
バケット 9: 0
バケット 10: 0
バケット 11: 0
バケット 12: 0
バケット 13: 0
バケット 14: 0
バケット 15: 0
分位数を計算します。
P75 の計算を例として使用します。
まず、必要な分位数に基づいてバケットテーブルを計算します。
P75 の場合、ARMS はデータの 75% が左側に存在することを確認する必要があります。サンプルデータ点の総数は 14 です。P75 の位置は、式 14 × 0.75 = 10.5 に基づいて計算されます。次に、ARMS は、そのバケットとその左側のすべてのバケットのデータ点の合計が 11 サンプルになるバケット 3 を見つけます。
線形補間を使用して最終的な分位数を計算します。
バケット 0、バケット 1、およびバケット 2 のデータ点の合計は既に 7 です。したがって、ARMS はバケット 3 でさらに 4 つのデータ点を見つけるだけで済みます。バケット 3 には合計 7 つのデータ点が含まれています。
バケット 3 の間隔は
(10.0, 25.0]
であることを考慮すると、P75 は次の式に基づいて計算されます。P75 = 10.0 + (25.0 - 10.0) × 4/7 = 18.6。
分位数統計の利点と欠点
利点: オーバーヘッドは最小限です。サンプルデータ全体を保存せずに分位数を計算できます。
欠点: レイテンシが非常に低い、レイテンシが非常に高い、またはサンプルが非常に少ないシナリオでは、計算された分位数が不正確になる可能性があります。
トレースエクスプローラーが分位数を計算する方法
トレースエクスプローラーは、ページのフィルタリング条件と Simple Log Service の SQL 関数を満たすすべてのスパンのレイテンシに基づいて分位数を計算します。詳細については、関数の概要トピックの approx_percentile 関数を参照してください。