Ingestion Controls

取り込みサンプリングルール

Ingestion controls により、アプリケーションから Datadog へ送信されるトレースが決定します。APM メトリクスは、常にすべてのトレースに基づき算出されるため、Ingestion controls による影響を受けません。

Ingestion Control ページは、アプリケーションとサービスの取り込み構成について、Agent とトレースライブラリレベルで可視性を提供します。Ingestion Control 構成ページからは、以下のことができます。

  • サービスレベルの取り込み構成を可視化し、高スループットのサービス用にトレースサンプリング速度を調整します。
  • どの取り込みメカニズムがトレースの多くをサンプリングしているかを理解します。
  • 取り込み構成の潜在的な問題 (Agent の CPU または RAM リソースの制限など) を調査し、対処します。
Ingestion Control ページ概要

このページで使用されているすべてのメトリクスは、過去 1 時間のライブトラフィックデータに基づいています。Agent やライブラリの構成変更はすべてこのページに反映されます。

すべての環境の概要

過去 1 時間の総取り込みデータの概要と、アクティブな APM のインフラストラクチャー (ホスト、Fargateタスク、サーバーレス関数) で計算した、月間割り当てに対する月間使用量の推定値を得ることができます。

月間使用量が 100% 以下であれば、取り込まれるデータの予測値が月間割り当てに収まることを意味します。月間使用量が 100% 以上であれば、取り込みデータが月間割り当てを超えると予測されます。

Agent レベルで全サービスの取り込みを管理

トレーシングライブラリでサービスの取り込み構成に入る前に、Datadog Agent から取り込みボリュームのシェアが制御可能です。

Manage Agent Ingestion をクリックすると、Agent のサンプリングコントロールの構成方法が表示されます。

Agent レベル構成モーダル

Datadog Agent でサンプリングを構成することで、3 つの取り込みメカニズムを制御することができます。

  • ヘッドベースサンプリング: サービスにサンプリングルールが設定されていない場合、Datadog Agent はライブラリで適用するサンプリングレートを自動的に計算し、Agent あたり 1 秒間に 10 件のトレースを目標とします。DD_APM_MAX_TPS の設定により、1 秒あたりの目標トレース数を変更することができます。
  • エラースパンサンプリング: ヘッドベースのサンプリングで捕捉されないトレースについて、Datadog Agent は、Agent ごとに最大で毎秒 10 トレースのローカルエラートレースを捕捉します。DD_APM_ERROR_TPS の設定により、1 秒あたりの目標トレース数を変更することができます。
  • レアスパンサンプリング: ヘッドベースのサンプリングで捕捉されないトレースについて、Datadog Agent は、Agent ごとに最大で毎秒 5 トレースのローカルレアレースを捕捉します。DD_APM_DISABLE_RARE_SAMPLER は、レアトレースの収集を無効にすることができます。

: 円グラフの Other Ingestion Reasons (グレー) セクションは、Datadog Agent レベルで_構成不可能_なその他の取り込み理由を表します。

ライブラリレベルで個別サービスの取り込みを管理

サービステーブルには、取り込まれたボリュームと取り込みの構成に関する情報が、サービスごとに分類されて表示されます。

Type
サービスの種類: Web サービス、データベース、キャッシュ、ブラウザなど…
Name
Datadog にトレースを送信している各サービスの名前。このテーブルには、過去 1 時間にデータが取り込まれたルートサービスと非ルートサービスが含まれています。
Ingested Traces/s
過去 1 時間にサービスから取り込まれた 1 秒あたりの平均トレース数。
Ingested Bytes/s
過去 1 時間にサービスのために Datadog に取り込まれた 1 秒あたりの平均バイト数。
Downstream Bytes/s
サービスがサンプリング判定を行った、取り込んだ 1 秒あたりの平均バイト数。これには、トレースの先頭で行われた判定に続く、下流のすべての子スパンのバイトと、Error samplerRare samplerApp Analytics のメカニズムで捕捉されたスパンが含まれます。
Traffic Breakdown
サービスを起点としたトレースについて、サンプリングされたトラフィックとサンプリングされていないトラフィックの詳細な内訳。詳細は、トラフィックの内訳を参照してください。
Ingestion Configuration
Agent からのデフォルトのヘッドベースのサンプリングメカニズムが適用される場合、Automatic と表示されます。トレーシングライブラリでトレースサンプリングルールを使って取り込みを構成した場合、そのサービスは Configured と表示されます。サービスの取り込み構成についての詳細は、デフォルトの取り込み率を変更するを参照してください。
Infrastructure
サービスが実行しているホスト、コンテナ、および関数。
Service status
Datadog Agent が その構成で設定された CPU や RAM の限界に達したために一部のスパンがドロップされた場合は Limited Resource、一部のスパンがレガシーのApp Analytics メカニズムを通じて取り込まれた場合は Legacy Setup、それ以外は OK と表示されます。

環境、構成、ステータスでページを絞り込み、対策が必要なサービスを表示します。グローバルな取り込み量を減らすために、テーブルをDownstream Bytes/s 列でソートして、取り込み量の最も大きな割合を占めるサービスを表示します。

: このテーブルは、使用量メトリクス datadog.estimated_usage.apm.ingested_spansdatadog.estimated_usage.apm.ingested_bytes によって提供されます。これらのメトリクスは serviceenvingestion_reason でタグ付けされています。

トラフィックの内訳

Traffic Breakdown の列は、サービスを起点とするすべてのトレースの行き先を分解して表示します。これにより、トラフィックがどのような理由で取り込まれ、どのような理由でドロップされたかを推定することができます。

トレース取り込みのトラフィック内訳

詳細は、以下の部分に分かれています。

  • Complete traces ingested (青色): Datadog により取り込まれたトレースの割合。

  • Complete traces not retained (グレー): Agent またはトレーシングライブラリにより、意図的に Datadog へ転送されなかったトレースの割合。コンフィギュレーションによって、以下の 2 つの理由のいずれかにより発生します。

    1. デフォルトでは、Agent はサービスのトラフィックに応じて、サービスに取り込み率を配分しています。
    2. トレースライブラリレベルで一定の割合のトレースを取り込むよう、サービスを手動で構成した場合。
  • Complete traces dropped by the tracer rate limiter (オレンジ色): トレースサンプリングルールでサービスの取り込み率を手動で設定することを選択した場合、デフォルトで 100 トレース/秒に設定されているレートリミッターが自動的に有効になっています。このレートを構成で設定するには、レートリミッターのドキュメントを参照してください。

  • Traces dropped due to the Agent CPU or RAM limit (赤色): このメカニズムにより、スパンが削除され、不完全なトレースが作成される場合があります。この問題を解決するには、Agent が実行されるインフラストラクチャーの CPU とメモリの割り当てを増やします。

サービス取り込みの概要

サービスの行をクリックすると、サービスの取り込み構成に関する実用的な洞察を提供する詳細なビューである、Service Ingestion Summary が表示されます。

Service Ingestion Summary

Ingestion reasons breakdown で、どのメカニズムがサービスの取り込みを担っているかを確認します。各取り込みの理由は、1 つの特定の取り込みメカニズムに関連しています。サービス取り込み構成を変更した後、過去 1 時間の取り込みデータに基づき、この時系列グラフで取り込まれたバイトとスパンの増減を観察することができます。

サービス取り込み量のほとんどが上流サービスによる決定である場合、Sampling decision makers トップリストの詳細を調査してください。たとえば、サービスが非ルート (トレースのサンプリングを決定しない) の場合、非ルートサービスの取り込みに関与するすべての上流サービスを調査してください。上流のルートサービスを構成して、全体的な取り込み量を減らすことができます。

APM Trace - Estimated Usage Dashboard は、グローバルな取り込み情報と、serviceenvingestion reason 別の内訳グラフを提供し、さらなる調査を行うことができます。

サービス取り込み率を構成する

Manage Ingestion Rate をクリックすると、サービスの取り込み率の構成についての説明が表示されます。

サービス取り込み率の変更

サービスのトラフィックの特定の割合を送信するように指定するには、そのサービスのトレーサー構成に環境変数または生成されたコードスニペットを追加します。

  1. 取り込まれたスパンのパーセントを変更するサービスを選択します。
  2. サービス言語を選択します。
  3. 必要な取り込み率を選択します。
  4. これらの選択から生成された適切なコンフィギュレーションを、示されたサービスに適用し、サービスを再デプロイします。
  5. Ingestion Control ページで、新しい割合が適用されたことを、適用されたサンプリングレートを表示する Traffic Breakdown 列を見ることで確認します。サービスの取り込み理由は、ingestion_reason:rule として表示されます。

その他の参考資料