Tracing without Limits™ を使用すると、Datadog へのトレースの取り込みとそのトレースの 15 日間の保存の両方を完全にカスタマイズできます。
Tracing without Limits™ の使用状況を追跡または監視するには、使用量メトリクスのドキュメントを参照してください。
スパンが Datadog によって取り込まれた後、アカウントに設定されている保持フィルターに従って、一部は 15 日間保持されます。デフォルトでは、有効な保持フィルターはインテリジェント保持フィルターのみで、エラートレースとさまざまなレイテンシー分布からのトレースを保持します。
また、サービスに追加のタグベースの保持フィルターをいくつでも作成できます。
注: 保持フィルターを作成、変更、または無効にするには、管理者権限が必要です。
Datadog アプリの Retention Filters タブで、次の情報を確認できます。
列 | Data |
---|---|
Filter Name | スパンのインデックス化に使用される各フィルターの名前。デフォルトでは、唯一のフィルターは Datadog Intelligent Retention です。 |
Filter Query | 各フィルターのタグベースのクエリ。 |
Retention Rate | Datadog によってインデックス化される一致するスパンの数の割合 (0〜100%)。 |
Spans Indexed | 選択した期間中にフィルターによってインデックス化されたスパンの数。 |
Last Updated | 最後に保持フィルターを変更したユーザーとその日付。 |
Enabled トグル | フィルターのオンとオフを切り替えることができます。 |
保持フィルターごとの ‘Spans Indexed’ 列に加えて、保持フィルターによってインデックス化されたスパンを追跡するために使用できるメトリクス datadog.estimated_usage.apm.indexed_spans
もあります。
詳細については、使用量メトリクスのドキュメントを参照するか、アカウントで利用可能なダッシュボードを参照してください。
インテリジェント保持は、サービスに対して常にアクティブであり、アプリケーションの健全性を監視するのに役立つトレースの割合を保持します。すべてのトップレベルスパンは、インテリジェント保持フィルターによって保持されるトレースに対してインデックス化されます。
Intelligent Retention は以下を保持します。
p75
、p90
、p95
の高レイテンシー。詳細に調査したい特定のタグ、ファセット、またはトレースのグループがある場合、つまり Intelligent Retention が保持する以上のものを保持したい場合は、独自の保持フィルターを作成します。たとえば、実稼働環境からの代表的なエラーの選択以上のものを保持したい場合があります。すべての実稼働エラーが保持され、15 日間検索と分析に使用できるようにするには、env:prod
と status:error
を対象とする 100% 保持フィルターを作成します。以下で説明するように、これは請求に影響を与える可能性があります。
インデックス化されて 15 日間保持されるスパンをカスタマイズするには、タグに基づいて追加のフィルターを作成、変更、無効化し、保持する各フィルターに一致するスパンの割合を設定します。保持されているスパンには、対応するトレースも保存され、表示されると、完全なトレースが利用可能になります。ただし、検索と分析でタグで検索するには、検索対象のタグを直接含むスパンが保持フィルターによってインデックス化されている必要があります。
注: “Top-Level Spans for Services Only” を選択すると、指定した比率はサービスのトップレベルのスパンのみに適用され、そのスパンが保持フィルターにより保持され、インデックス化されます。一致するタグのあるトップレベルスパンのみをインデックス化する場合は、このオプションを使用します。“All Spans” を選択すると、階層にかかわらず、分散されたトレースのすべてのスパンに指定比率が適用され、そのスパンが保持、インデックス化されます。これは、請求書およびアプリ内の視覚的な指標に影響を与える可能性がありますが、保持フィルターを設定することで、一定期間に検出された一致スパンの数について知ることができます。
たとえば、フィルターを作成し、以下のすべてのトレースを保持することができます。
Ingestion Controls により、アプリケーションから Datadog へ送信されるトレースが決定します。統計およびメトリクスは、常にすべてのトレースに基づき算出されるため、Ingestion Controls による影響を受けません。
多くのインスツルメントされたサービスは、デフォルトでトレースの 100% を Datadog に送信します。Datadog Agent では、デフォルトで 1 秒あたり最大 50 トレースのボリュームまでは、スパンを削除およびサンプリングしません。ボリュームが大きいサービスまたは断続的なトラフィックが発生するサービスは、デフォルトでスパンの 100% を送信しない可能性が高くなります。1 秒あたり最大 50 トレースという既定の取り込みは、Intelligent Retention に基づき、デフォルトで様々なトレースを保持します。
トレースを 100% 送信するようサービスを設定すると、すべてのトレースをライブ検索および分析に使用できるため、大変有用です。
注: Ingestion Rate の数値が 100% 未満の場合は、Agent 6.19 以降または 7.19 以降を使用していることを確認してください。これらのバージョンではデフォルトの率が高くなっています。
Datadog アプリの ‘Ingestion Controls’ タブで、次の情報を確認できます。
列 | Data |
---|---|
Root Service | インスツルメントされた、Datadog にトレースを送信する各サービスの名前。 |
Data Ingested | 選択した期間中に Datadog によって取り込まれたデータの量。 |
Ingestion Rate | サービスによって生成されたスパンのうち、Datadog が取り込んでいるスパンの割合 (0〜100%)。数値が 100% 未満の場合、Datadog により、一部のトレースが Datadog Agent から取り込まれていないことを意味し、このトレースはメトリクスおよび統計が算出された後 Datadog Agent により削除されます。 |
取り込み詳細 | サービスにより生成された各トレースの送信先の詳細。詳しくは、取り込み詳細 を参照。 |
Tracers Configuration | アプリ内の手順に従いトレーサーを構成し変更しない限り、Default と表示。詳しくは、デフォルトの取り込み率の変更 を参照。このサービスがデプロイされているすべてのホストが特定のボリュームのトレースを送信するよう構成されている場合は、Fully Configured と表示。このサービスがデプロイされているホストの一部のみが構成されている場合は、Partially Configured と表示。 |
Dropped Spans | Datadog Agent により削除された受信スパンの割合。この数値が 0% より高い場合、そのサービスの行をクリックして構成することができます。詳しくは、デフォルトの取り込み率の変更を参照。 |
Traces Ingested per Second | サービスに対し、選択した期間中に Datadog に取り込まれたトレースの 1 秒あたりの平均数。 |
Spans Ingested | 選択した期間中に Datadog によって取り込まれたスパンの数。 |
各保持フィルターの Data Ingestion 列に加えて、2 つのメトリクス datadog.estimated_usage.apm.ingested_spans
と datadog.estimated_usage.apm.ingested_bytes
もあります。これらのメトリクスは service
と env
でタグ付けされており、トレース分析ダッシュボード内でトップリストを利用して、最大の取り込み量が発生している場所を示します。詳細については、使用量メトリクスのドキュメントを参照してください。
サービスのトラフィックの特定の割合を送信するように指定するには、そのサービスのトレーサー構成に生成されたコードスニペットを追加します。
すべてのサービスについて、Datadog でトレースの 100% を取り込み、ライブ検索および分析に使用したり、保持フィルターを最大限に制御したりするため、Datadog ではデフォルトでトレースの 100% を送信するようすべてのサービスを構成することをおすすめしています。
Datadog トレーシングライブラリでインスツルメントされた各サービスに 100% の取り込みを構成するには、トレーサーのコンフィギュレーションで下記の環境変数を設定します。
DD_TRACE_SAMPLE_RATE=1.0
注: 取り込みの合計が、含まれる GB サイズを超える場合は、請求に影響を与える場合があります。詳細は APM 料金ページを参照してください。
Ingestion Breakdown の列には、サービスを起点とするすべてのトレースの送信先に関する詳細が表示されます。これにより、期待値を下回る取り込み率およびトレースの欠落を把握することができます。
詳細は、以下の部分に分かれています。
Complete traces ingested (緑色): Datadog により取り込まれたトレースの割合。
Complete traces not retained (グレー): エージェントまたはトレーサーにより、意図的に Datadog へ転送されなかったトレースの割合。コンフィギュレーションによって、以下の 2 つの理由のいずれかにより発生します。
Complete traces dropped by the tracer rate limiter (オレンジ色): サービスの取り込み率を構成 することにした場合、サービスの取り込み率を明示的に定義します。ただし、デフォルトで、1 秒当たり 100 トレースというレート制限が保護機能として自動的に有効になります。このレート制限を構成するには、サポートチケットを作成するとプロセスの案内が提供されます。
Traces dropped due to the agent CPU limit (赤色): エージェントには、ユーザーに CPU 使用量の制限設定を許可するコンフィギュレーションオプションがあります。この制限に達すると、エージェントはトレーサーからのトレースの受信を停止します。エージェントに割り当てられる CPU 量を構成するには、エージェントのコンフィギュレーションを変更します。
Tracing without Limits に、環境変数コンフィギュレーション DD_TRACE_SAMPLE_RATE=1.0
を設定しないと、トレースが 100% 取り込まれることはありません。また、以下の条件が必要です。
場合によっては、統計が算出された後に Datadog Agent により一部のトレースが削除され、メトリクスがトレースの 100% に基づくことがあります。
Datadog 内の取り込み率が 100% 以下で、すべてのトレースを送信したい場合は、環境変数を上記のように設定して Tracing without Limits を有効にします。ご質問がある場合は、サポートチームまでお問い合わせください。
2020 年 10 月 20 日まで、Datadog ではデータ分析のためのスパンのインデックス化に App Analytics を提供していました。現在、このセットアップのコンフィギュレーションは推奨ではなく、トレースの検索と分析の使用には必要ありませんが、レガシー手順は App Analytics の設定ページでご覧いただけます。
既存のすべての App Analytics フィルターは、自動的に Retention Filters に移行されています。未変更フィルターは、引き続き使用するか、必要に応じて修正してご利用ください。移行されたフィルターには、 App Analytics のレガシーフィルターであることを示す i が付けられています。
注: 既存の App Analytics フィルターは、Datadog 内で編集できますが、移行された保持フィルターを編集することによってのみ編集できます。レガシーフィルターは、アプリ内の設定ページでのみ読み取られます。