- 重要な情報
- はじめに
- 用語集
- ガイド
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- Service Management
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
アプリケーションやサービスが OpenTelemetry のライブラリでインスツルメンテーションされている場合、次のことが可能です。
1 つ目と 2 つ目のシナリオでは、Datadog エクスプローラーで APM RED メトリクス (サービス、演算子、リソースごとのリクエスト/エラー回数とレイテンシー分布) が計算されます。3 つ目のケースでは、Datadog Agent がこれらのメトリクスを計算します。
APM メトリクスと分散型トレーシングは、どちらもアプリケーションのパフォーマンスをモニターするのに便利なツールです。メトリクスは特定のリソースのレイテンシーやエラー率の上昇を発見するのに役立ち、分散型トレーシングは個々のリクエストレベルまで掘り下げることができます。
Datadog トレーシングライブラリ、Datadog Agent、OpenTelemetry SDK、OpenTelemetry コレクターは全てサンプリング機能を備えています。なぜなら、ほとんどのサービスでは、アプリケーションの健全性を可視化するために、100% のトレースを取り込む必要はないためです。
Datadog にトレースを送信する前にサンプリングレートを構成することで、以下のことが可能になります。
OpenTelemetry では、OpenTelemetry ライブラリと OpenTelemetry コレクターの両方でサンプリングの構成が可能です。
SDK レベルでは、_ヘッドベースサンプリング_を実装することができ、これはサンプリングの決定がトレースの開始時に行われる場合です。このタイプのサンプリングは、高スループットのアプリケーションで、アプリケーションの健全性を監視するためにトラフィックの 100% を可視化する必要がないことが分かっている場合に特に有用です。また、OpenTelemetry がもたらすオーバーヘッドを抑制するのにも有効です。
TraceIdRatioBased と ParentBased は、SDK レベルで trace_id
に基づく決定論的なヘッドベースサンプリングを実装することができる SDK の組み込みサンプラーです。
ヘッドベースサンプリングでは、サンプリングされたトラフィックのみが OpenTelemetry コレクターまたは Datadog Agent に送信され、そこでメトリクスの計算が行われるため、APM メトリクスはサンプリングされたトラフィックで計算されます。
正確な統計情報を得るためには、SDK で構成されたサンプリングレートを知っていれば、Datadog のダッシュボードやモニターで計算式と関数を使ってメトリクスをアップスケールすることが可能です。
スパンからのトレース分析モニターとメトリクスにトレースサンプリングを設定することの意味については、取り込み量制御ガイドを参照してください。
OpenTelemetry コレクターレベルでは、_追跡ベースサンプリング_を行うことができ、より高度なルールを定義して、エラーや高レイテンシーのトレースに対する可視性を維持することができます。
Tail Sampling Processor と Probabilistic Sampling Processor は、コレクターレベルで一連のルールに基づいてトレースをサンプリングすることが可能です。
注: 追跡サンプリングの主な制限は、効果的なサンプリング決定のために、与えられたトレースのすべてのスパンが同じコレクターインスタンスによって受信されなければならないということです。トレースが複数のコレクターインスタンスに分散している場合、トレースの一部がドロップされ、同じトレースの他の一部が Datadog に送信される危険性があります。
コレクターレベルのテールベースサンプリングを使用しながら、APM メトリクスがアプリケーションのトラフィックの 100% に基づいて計算されるようにするには、コレクターのトレースパイプラインでサンプリングプロセッサの前に Datadog Processor を事前定義してください。このプロセッサは、OpenTelemetry Collector Contribor v0.69.0+ で利用可能です。
スパンからのトレース分析モニターとメトリクスにトレースサンプリングを設定することの意味については、取り込み量制御ガイドを参照してください。
Datadog Agent OTLP Ingest を使用する場合、Agent バージョン 7.44.0 から確率的サンプラーが利用できます。環境変数 DD_OTLP_CONFIG_TRACES_PROBABILISTIC_SAMPLER_SAMPLING_PERCENTAGE
を使用して設定するか、Agent のコンフィグレーションファイルで以下の YAML を設定します。
otlp_config:
# ...
traces:
probabilistic_sampler:
sampling_percentage: 50
上記の例では、50% のトレースがキャプチャされます。
注: 確率的サンプラーのプロパティは、すべての Agent で同じサンプリング率を使用すると仮定した場合、完全なトレースのみが取り込まれることを保証します。
確率的サンプラーは、SDK レベルでサンプリング優先度がすでに設定されているスパンを無視します。さらに、確率的サンプラーでキャプチャされなかったスパンは、Datadog Agent のエラーサンプラーとレアサンプラーでキャプチャされる可能性があり、取り込みデータセットにエラーとレアエンドポイントトレースの高い表現力を確保することができます。
APM 推定使用量ダッシュボードと推定使用量メトリクス datadog.estimated_usage.apm.ingested_bytes
を活用すると、特定の期間の取り込み量を可視化することができます。ダッシュボードを特定の環境とサービスにフィルターして、取り込み量の最大のシェアを占めるサービスを確認できます。
お役に立つドキュメント、リンクや記事: