インデックス化スパン
インデックス化スパン (Indexed Spans) は、Datadog APM に取り込まれたスパンのうち、リテンションフィルターに選ばれて 15 日間検索できる索引に残ったスパン。検索と集計とモニターの材料になり、件数で使用量を数える単位でもある。
概要
インデックス化スパンは、Datadog APM が取り込んだスパンの中からリテンションフィルターが選び、15 日間の索引に残したスパンです。取り込まれただけのスパンはトレース全体の表示には使われますが、Trace Explorer の検索や集計、trace analytics monitor の評価に使えるのは索引に入ったスパンだけです。検索に出ないスパンや割当の超過を調べるときに、どのフィルターが何を残しているかを読み解く起点になる概念です。
取り込みの後段で選ばれて残るスパン
インデックス化スパン (Indexed Spans) は、Datadog APM に取り込まれた スパン のうち、リテンションフィルター に選ばれて 15 日間検索できる索引に残ったスパンのことです。APM のスパンは 2 段の関門を通ります。前段の 取り込み制御 は Agent からどれだけ送るかを決め、後段のリテンションフィルターは送られてきたものの中から何を残すかを決めます。インデックス化スパンはこの後段の結果で、取り込まれただけのスパンは含みません。公式ドキュメントも、リテンションフィルターは Agent が集めて送る量には影響せず、送る量を制御したければ取り込み制御を使うと明記しています (2026 年 9 月時点・出典: Trace Retention)。
- 計装したアプリケーションがスパンを生成する
- 取り込み制御が送る量を決める (Ingested Spans = GB で数える)
- リテンションフィルターがタグ条件と保持率で残すものを選ぶ
- インデックス化スパンとして 15 日間の索引に入る (件数で数える)
残す規則そのものはリテンションフィルターの項に委ね、この項では残ったスパンで何ができ、何が数えられるかを扱います。
索引に入ると何ができ、何ができないか
索引に入ったスパンは Trace Explorer で検索でき、時系列、トップリスト、表の集計ビューに載り、ダッシュボードとノートブックのクエリでも扱え、trace analytics monitor の評価対象になります。この状態が 15 日続きます (2026 年 9 月時点・出典: Trace Retention)。見落としやすいのは表示と検索の違いです。索引に入ったスパンを開けば親子のスパンが索引に無くてもトレース全体が表示されますが、検索で見つかるのはリテンションフィルターが索引に入れたスパンだけです。「見えているのに検索に出ない」現象の正体はここにあります。モニター側にも 2 つの除外があります。Intelligent Retention Filter が残したスパンは trace analytics monitor の評価から外れ、トレース単位のフィルターで間接的に索引に入ったスパンも評価されません。モニターに掛けたいスパンは、自作フィルターの条件に直接一致させます。
なぜ残ったかは retained_by 属性が答える
索引に残った全てのスパンには retained_by 属性が付き、どの仕組みが残したかを示します。使用量の実測値は datadog.estimated_usage.apm.indexed_spansメトリクスで確認できます。Retention Filters 画面の Spans Indexed 列もこの値を元にしています (2026 年 9 月時点・出典: Trace Retention)。
| 値 | 残した仕組み | 使用量 |
|---|---|---|
retention_filter | 既定または自作のフィルター (トレース率なし)。Trace Queries には含まれない | 数える |
trace_retention_filter | トレース率を設定したフィルター | 数える |
diversity_sampling | Intelligent Retention Filter の多様性サンプリング | 数えない |
flat_sampled | 1% の一様サンプリング。@retention_reason:rum (RUM セッション連動) と @retention_reason:trace (trace_id 基準) で分けられる | 数えない |
索引の件数が想定より多いときは、Trace Explorer で retained_by ごとに件数を分けて見るのが最短の確認です。数えられない 2 種類を除いた残りが、自分のフィルター設計が生んだ使用量です。
スパン単位とトレース単位、2 種類の残し方
条件に一致したスパンだけを索引に入れるスパン単位のフィルターと、一致したスパンを含むトレース全体を索引に入れるトレース単位のフィルターの 2 種類があります。前者はスパンのクエリと Span rate で設定し、Span Explorer で検索できます。後者はそれに Trace rate を加え、Span Explorer に加えて Trace Queries でも扱えます (2026 年 9 月時点・出典: Trace Retention)。Trace rate は索引の件数を大きく増やし得ます。公式ドキュメントの例では、1 トレースが平均 100 スパンで条件に一致するのが 5 スパンのとき、Trace rate を設定すると選ばれたトレースの残り 95 スパンも索引に入ります。Span rate が先に評価され、Trace rate はそこで選ばれたトレースにだけ掛かります。トレース 全体を横断する問いに答えたいときだけトレース単位を選ぶのが、件数を抑える基本です。
取り込み GB と索引スパン数は別の物差し
混同されやすいのが取り込み量との関係です。取り込み (Ingested Spans) は GB で数え、索引 (Indexed Spans) は件数で数えます。取り込みを絞れば索引の候補も減りますが、索引を絞っても取り込みの GB は減りません。この 2 本の物差しは APM の課金でも別々の行になります。割当を超えたインデックス化スパンは 100 万スパンを単位に、保持期間ごとの単価で課金され、年契約とオンデマンドで単価が異なります (2026 年 8 月時点の課金構造・出典: Datadog Pricing)。本記事は課金の仕組みを解説するものです。具体的な単価や料金は Datadog 公式の料金ページで確認してください。割当の数え方と超過分の計算は APM 料金の解説 に委ねます。使用量の確認は、datadog.estimated_usage.apm.indexed_spans の総量から retained_by の内訳へ降りる順で行います。