分散システムでは、重複したトレースや価値の低いトレースが大量に生成されます。トレースサンプリングは、エラー、低速リクエスト、クリティカルパスなど、調査する可能性が最も高いトレースのみを保持することで、ストレージとコンピューティングコストを削減します。
ARMS は 4 つのサンプリングモードをサポートしています。各モードは、異なるトラフィックパターンとコスト目標に対応しています。
| サンプリングモード | 仕組み | 最適なケース |
|---|---|---|
| 固定レートサンプリング | すべてのトレースの一定の割合を保持 | ボリュームが安定している予測可能なトラフィック |
| 適応型サンプリング | 複数の戦略を用いて、インターフェイス全体のサンプリングを動的に調整 | 大量または変動の激しいトラフィック (推奨) |
| Basic Edition サンプリング | 無料利用枠に加え、インターフェイスごとのカスタムポリシー | コストを管理する Basic Edition ユーザー |
| 失敗したリクエストまたは低速リクエストのサンプリング | エラーおよびレイテンシー外れ値のスパンをキャプチャ | フルレートサンプリングなしでの問題検出 |
固定レートサンプリング
固定レートサンプリングは、TraceId に基づいて一定の割合のトレースを保持します。10% のレートでは、10 トレースごとに 1 つのトレースが記録されます。各トレースは完全に保持されるか、完全に破棄されるかのいずれかであり、部分的なトレースは発生しません。
固定レートサンプリングの設定
ARMS コンソールにログインします。左側のナビゲーションウィンドウで、[アプリケーションモニタリング] > [アプリケーションリスト] を選択します。
上部のナビゲーションバーでリージョンを選択し、対象のアプリケーションをクリックします。
説明[言語] 列のアイコンは、プログラミング言語を示します。
: Java
: Go
: Python- (ハイフン): OpenTelemetry 向けマネージドサービスでモニタリングされているアプリケーション
左側のナビゲーションウィンドウで、[アプリケーション設定] をクリックします。表示されたページで、[カスタム設定] タブをクリックします。
[サンプルレート設定] セクションで、[サンプルレートモデル] を [固定サンプリングレート] に設定します。[サンプルレート設定] フィールドに、パーセント値を入力します。たとえば、10% のサンプリングレートの場合は
10と入力します。説明変更はアプリケーションを再起動することなく、すぐに有効になります。デフォルト値は 10 です。サンプリングレートを高くすると、より多くのシステムリソースを消費します。ワークロードでより高いレートが必要でない限り、デフォルト値を維持してください。
適応型サンプリング
適応型サンプリングは、3 つの戦略を組み合わせて各トレースをサンプリングするかどうかを動的に決定します。このモードは、低コストと包括的なモニタリングのバランスを取ります。トラフィックが大量であるか、大幅に変動する場合に使用します。
| 戦略 | 説明 | 設定可能 |
|---|---|---|
| 特定インターフェイスのフルサンプリング | インターフェイス名、プレフィックス、またはサフィックスを指定して、そのトレースを 100% 保持します。収集されるデータ量が増加するため、これは重要なインターフェイスに対してのみ有効にしてください。 | はい |
| 上位 N 件のリクエストのサンプリング | 最小頻度使用 (LFU) アルゴリズムを使用して、インターフェイスごとにエントリのサブセットをサンプリングします。データ量がトラフィックに比例して線形に増加するのを防ぎます。 | いいえ |
| すべてのインターフェイスの最小サンプリング | 各タイムウィンドウ内で、インターフェイスごとに少なくとも 1 つのトレースをサンプリングします。低トラフィックのインターフェイスの可視性を維持します。 | いいえ |
適応型サンプリングの設定
ARMS コンソールにログインします。左側のナビゲーションウィンドウで、[アプリケーションモニタリング] > [アプリケーションリスト] を選択します。
上部のナビゲーションバーでリージョンを選択し、対象のアプリケーションをクリックします。
説明[言語] 列のアイコンは、プログラミング言語を示します。
: Java
: Go
: Python- (ハイフン): OpenTelemetry 向けマネージドサービスでモニタリングされているアプリケーション
左側のナビゲーションウィンドウで、[アプリケーション設定] をクリックします。表示されたページで、[カスタム設定] タブをクリックします。
[サンプルレート設定] セクションで、[サンプルレートモデル] を [適応型サンプリング] に設定します。フルサンプリングの対象となるインターフェイス名、プレフィックス、またはサフィックスを指定します。
説明変更はアプリケーションを再起動することなく、すぐに有効になります。適応型サンプリングには、ARMS エージェント V2.8.3 以降が必要です。
Basic Edition サンプリング
Basic Edition サンプリングは、アプリケーションモニタリング Basic Edition のユーザーのみが利用できます。無料のサンプリングポリシーを提供し、カスタムサンプリングポリシーをサポートします。
| ポリシータイプ | 説明 |
|---|---|
| 無料サンプリングポリシー | アカウント内のすべてのインターフェイスにわたり、エージェントごとに 1 分間に 1 つのトレースを無料で収集します。 |
| カスタムサンプリングポリシー | 固定比率または固定トラフィック制限に基づいてトレースをサンプリングします。各ポリシーは、すべてのインターフェイスまたは特定のインターフェイスを対象にできます。 |
カスタムサンプリングポリシーの追加
ARMS コンソールにログインします。左側のナビゲーションウィンドウで、[アプリケーションモニタリング] > [アプリケーションリスト] を選択します。
上部のナビゲーションバーでリージョンを選択し、対象のアプリケーションをクリックします。
説明[言語] 列のアイコンは、プログラミング言語を示します。
: Java
: Go
: Python- (ハイフン): OpenTelemetry 向けマネージドサービスでモニタリングされているアプリケーション
左側のナビゲーションウィンドウで、[アプリケーション設定] をクリックします。表示されたページで、[カスタム設定] タブをクリックします。
[サンプルレート設定] セクションで、[クライアントサンプリングポリシーの追加] をクリックします。次のパラメーターを設定し、[OK] をクリックします。
パラメーター 説明 サンプリングポリシー名 サンプリングポリシーの名前。 サンプリングタイプとサンプリング値 固定比率サンプリング:指定された比率でトレースをサンプリングします。[サンプリング値] に 10%のようにパーセンテージを入力します。フロー制限:時間間隔内にエージェントごとに指定された数のトレースを収集します。たとえば、1秒ごとにエージェントあたり5トレースなどです。適用インターフェイス ポリシーの範囲。[各インターフェイス] を選択してすべてのインターフェイスに適用するか、[インターフェイスの指定] を選択して名前で単一のインターフェイスを対象にします。複数のインターフェイスを対象にするには、それぞれに個別のポリシーを作成します。
失敗したリクエストまたは低速リクエストのサンプリング
このモードは、リクエストが次のいずれかの条件を満たした場合にスパンをキャプチャします。
| 条件 | 説明 |
|---|---|
| エラー応答 | HTTP インターフェイスが 2xx または 3xx 以外のステータスコードを返すか、サービス例外がフレームワークにスローされ、LocalRootSpan によってキャッチされた場合。 |
| レイテンシー外れ値 | リクエストの持続時間が、同じインターフェイスの過去の持続時間の 99 パーセンタイル (p99) を超えた場合。p99 のしきい値は、バケット集約により偏差が生じる場合があります。 |
| メソッド例外 | リクエスト内のメソッドによって例外がスローされた場合。ARMS エージェント V4.1.x でのみサポートされています。 |
このモードは、トレースの完全な整合性を保証するものではありません。サンプリングがトリガーされると、現在のアプリケーション内のスパンのみが保存されます。同じトレース内のアップストリームまたはダウンストリームのサービスからのスパンはキャプチャされない場合があります。
スロットリング
ARMS エージェントは、大量のトラフィック下でモニタリングがアプリケーションのパフォーマンスに影響を与えるのを防ぐため、デフォルトでトレース収集を毎秒 100 トレースに制限します。この制限は、固定レートサンプリングと適応型サンプリングの両方に適用されます。
この制限を調整するには、[カスタム設定] タブで [スロットリングしきい値] パラメーターを変更します。
スロットリングのしきい値を高くすると、より多くのシステムリソースを消費します。モニタリング設定で毎秒より多くのトレースが必要でない限り、デフォルト値を維持してください。
次のステップ
トレースがサンプリングされた後、フィルター条件と集約ディメンションを使用して、トレースエクスプローラーでトレースデータをリアルタイムで分析します。