Datadog APM では、トレースの取り込みと 15 日間の保持を完全にカスタマイズすることができます。
取り込まれたデータとインデックス化されたデータの量を追跡または監視するには、使用量メトリクスのドキュメントを参照してください。
Retention Filters
スパンが取り込まれた後、アカウントに設定された保持フィルターに従って、一部は 15 日間保持されます。
以下の保持フィルターはデフォルトで有効になっており、すべてのサービスやエンドポイント、エラーや高レイテンシーのトレースを確実に可視化することができます。
- インテリジェント保持フィルターは、環境、サービス、オペレーション、リソースごとに異なるレイテンシー分布のスパンを保持します。
Error Default
保持フィルターは status:error
を持つエラースパンをインデックス化します。保持率とクエリは構成することができます。例えば、本番環境のエラーを取得するには、クエリを status:error, env:production
に設定します。デフォルトでエラーを捕捉したくない場合は、保持フィルターを無効にしてください。- Application Security Management を使用している場合、
Application Security
保持フィルターが有効になります。このフィルタは、アプリケーションセキュリティの影響 (攻撃の試み) があると識別されたトレース内のすべてのスパンの保持を保証します。 - Synthetic Monitoring を使用している場合、
Synthetics
保持フィルターが有効になります。デフォルトでは、Synthetic API と Synthetic ブラウザテストから生成されたトレースが利用可能な状態に保たれます。トレースと Synthetic テストを相関付ける方法など、詳細は Synthetic APM を参照してください。
これらに加えて、サービスのためのカスタムタグベースの保持フィルターをいくつでも追加作成し、ビジネスにとって最も重要なデータをキャプチャすることが可能です。
注: 保持フィルターの作成、削除、変更、有効化、無効化には apm_retention_filter_write
権限が必要です。
Datadog では、Retention Filters タブで、すべての保持フィルターのリストを見ることができます。
- Filter Name
- スパンをインデックス化するために使用される各保持フィルターの名前。
- Filter Query
- 各フィルターのタグベースのクエリ。
- Retention Rate
- インデックス化されるマッチングスパンの数の 0~100% のパーセンテージを指定します。保持されるスパンは、フィルタークエリに一致するスパンの中から一律に選ばれます。
- Spans Indexed
- 選択した期間中にフィルターによってインデックス化されたスパンの数。
- Last Updated
- 最後に保持フィルターを変更したユーザーとその日付。
- Enabled toggle
- フィルターのオンとオフを切り替えることができます。
注: 保持フィルターリストの順序は、インデックスの動作を変更します。スパンがリストの早い段階で保持フィルタに一致した場合、そのスパンは保持されるか削除されるかのどちらかです。リストの下位にある一致する保持フィルターは、すでに処理されたスパンを捕らえません。
各保持フィルターの Spans Indexed
列は、 datadog.estimated_usage.apm.indexed_spans
メトリクスによって提供され、これを使用してインデックス化されたスパンの使用量を追跡することが可能です。詳細については、使用量メトリクスを読むか、アカウントで利用できるダッシュボードを参照してください。
注: 保持フィルターは、Agent によって収集され、Datadog に送信される (「取り込まれる」) トレースには影響しません。取り込まれるトレースデータの量を変更する唯一の方法は、
取り込みコントロールを使用することです。
Datadog インテリジェント保持フィルター
Datadog のインテリジェント保持フィルターは、サービスに対して常にアクティブであり、何十ものカスタム保持フィルターを作成する必要なく、代表的なトレースの選択を保持します。これは以下で構成されます。
注: Trace Queries は、インテリジェント保持フィルターによってインデックス化されたデータに基づいています。
インテリジェント保持フィルターによってインデックス化されたスパン (多様性サンプリングと 1% フラットサンプリング) は、インデックス化されたスパンの使用量にカウントされないため、請求に影響を与えません。
インテリジェント保持フィルターが保持するスパンよりも多くインデックス化したい特定のタグや属性がある場合、独自の保持フィルターを作成してください。
多様性サンプリング
多様性サンプリングはサービスエントリースパンをスキャンして、以下を 30 日間保持します。
- 環境、サービス、オペレーション、リソースの各組み合わせについて、最大 15 分ごとに少なくとも 1 つのスパン (および関連するトレース)。これにより、トラフィックの少ないエンドポイントでも、サービスとリソースのページに常にトレース例を見つけることができるようになっています。
- 環境、サービス、オペレーション、リソースの組み合わせごとに、
p75
、p90
、p95
のパーセンタイルスパン (および関連するトレース) の高レイテンシースパン。 - エラーの代表的な選択。これにより、エラーの多様性を保証します (たとえば、応答ステータスコード 400、500)。
多様性サンプリングでキャプチャされたデータセットは、一様にサンプリングされていません (つまり、全トラフィックを比例的に代表していません)。エラーやレイテンシーの高いトレースに偏ります。
1% フラットサンプリング
フラット 1% サンプリングは取り込まれたスパンの均一な 1% サンプルです。これは trace_id
に基づいて適用され、同じトレースに属するすべてのスパンが同じサンプリング決定を共有することを意味します。
このサンプリングメカニズムは均一であり、取り込まれたトラフィック全体を比例的に代表します。その結果、短い時間枠でフィルタリングすると、トラフィックの少ないサービスやエンドポイントがそのデータセットから欠落する可能性があります。
独自の Retention Filter を作成
タグに基づく追加フィルターの作成、変更、無効化により、どのスパンをインデックス化し、15 日間保持するかを決定することができます。各フィルターに一致するスパンの保持する割合を設定します。保持されたスパンは、対応するトレースも保存され、トレースエクスプローラーで表示すると、完全なトレースが利用可能です。
**注: ** トレースエクスプローラーでタグによる検索を行うには、検索対象のタグを直接含むスパンが保持フィルターによってインデックス化されている必要があります。
- 任意のスパンタグを追加して、保持クエリを定義します。定義されたタグを持つ_すべてのスパン_を保持するか、_サービスエントリスパンのみを保持するか (デフォルトで選択)、またはトレースルートスパン_のみを保持するかを選択します。
- インデックス化するこれらのタグに一致するスパンの割合を設定します。
- フィルターに名前を付けます。
- 新しいフィルターを保存します。
新しいフィルターを作成したり、既存のフィルターの保持率を編集すると、Datadog はグローバルインデックスボリュームの変化率の推定値を表示します。
フィルターは直列に保持されます。上流フィルターで resource:POST /hello_world
というタグのスパンを保持している場合、同じタグのスパンを検索する下流フィルターの Edit ウィンドウには、上流フィルターによって保持されているため、それらのスパンは表示されません。
たとえば、フィルターを作成し、以下のすべてのトレースを保持することができます。
- $100 以上のクレジットカード取引。
- SaaS ソリューションのミッションクリティカルな機能を使用中の最重要顧客。
- オンラインのデリバリーサービスアプリケーションの特定バージョン。
インデックス化されたスパンのトレース検索と分析
トレースエクスプローラーで
デフォルトでは、カスタム保持フィルターおよびインテリジェント保持フィルターによってインデックス化されたスパンは、トレースエクスプローラーの集計ビュー (時系列、トップリスト、テーブル) に含まれます。
しかし、ダイバーシティサンプリングされたデータセットは、一様にサンプリングされていない (つまり、全トラフィックを比例して代表していない) ため、エラーや高レイテンシーのトレースに偏っているので、クエリに -retained_by:diversity_sampling
クエリパラメーターを追加すれば、これらのスパンをこれらの表示から除外することができます。
retained_by
属性は、すべての保持されたスパンに存在します。その値は次の通りです。
- スパンがダイバーシティサンプリング (インテリジェント保持フィルターの一部) によってキャプチャされた場合は
retained_by:diversity_sampling
。 - スパンが 1% フラットサンプリングでインデックス化された場合は、
retained_by:flat_sampled
。 - スパンが、
Error Default
や Application Security Default
などのタグベースの保持フィルターによってキャプチャされていた場合は、retained_by:retention_filter
。
ダッシュボード、ノートブック、モニターで
上記の理由により、インテリジェント保持フィルターによってインデックス化されたスパンは、ダッシュボードやノートブックに表示される APM クエリから除外され、トレース分析モニター評価から除外されます。
その他の参考資料