Datadog APMによるパーセンタイル自動計算の仕組み
Datadog
APM
dd-trace
Datadog APM (dd-trace) を使用すると、パーセンタイル値が自動的に計算される仕組み。
自動計算されるパーセンタイル: dd-traceでトレースを送信すると、p50/p75/p90/p95/p99/p100が自動計算される。これはDatadogのデフォルト機能。
計算アルゴリズム - DDSketch:
- Datadogが開発した分散環境向けアルゴリズム
- 全データを保持せずメモリ効率的(100万リクエストでも数KB)
- 複数ホスト/コンテナのデータをマージ可能
- 相対誤差1-2%程度で高精度
計算の流れ:
- dd-traceがスパンを記録(各リクエストのレイテンシー)
- 10秒ごとにDatadog Agentにフラッシュ
- バックエンドでDDSketchにデータを追加
- クエリ時にパーセンタイル値を計算
利用可能なメトリクス:
AWS CloudWatchとの違い: CloudWatchメトリクス(例: aws.applicationelb.target_response_time.average)にはp95/p99が含まれない。パーセンタイル監視にはAPMメトリクスを使用する必要がある。
実装確認ポイント: dd-traceをアプリケーション起動時(main.tsなど)の最初にインポートすることで、自動計測が有効になる。