概要
トレース収集の有効化とアプリケーションのインスツルメントを行うと、トレースアプリケーションメトリクスが収集されます。
これらのメトリクスは、リクエスト回数、エラー回数、およびレイテンシーの測定値をキャプチャします。これらは、トレース取り込みサンプリングの構成に関係なく、アプリケーションの 100% のトラフィックに基づいて計算されます。これらのメトリクスを使用して、サービスやリソースの潜在的なエラーを発見し、ダッシュボード、モニター、SLO を作成することで、アプリケーションのトラフィックを完全に可視化することができます。
注: アプリケーションやサービスが OpenTelemetry ライブラリでインスツルメンテーションされ、SDK レベルやコレクターレベルでサンプリングを設定した場合、APM メトリクスはサンプリングされたデータセットに基づいて計算されます。
トレースメトリクスは、インテグレーション言語によって、サービスエントリースパンや特定のオペレーションに対して生成されます。例えば、Django インテグレーションでは、様々な操作を表すスパン (Django リクエスト用のルートスパン 1 つ、各ミドルウェア用のスパン 1 つ、ビュー用のスパン 1 つ) からトレースメトリクスを生成しています。
トレースメトリクスのネームスペースは、次のようなフォーマットになっています。
trace.<スパン名>.<メトリクスサフィックス>
trace.<スパン名>.<メトリクスサフィックス>.<第 2 プライマリタグ>_service
次の定義と組み合わせます。
<SPAN_NAME>
- 操作の名前または
span.name
(例: redis.command
、pylons.request
、rails.request
、mysql.query
)。 <METRIC_SUFFIX>
- メトリクスの名前(例:
duration
、hits
、span_count
)。以下のセクションを参照してください。 <2ND_PRIM_TAG>
- メトリクス名が 第 2 プライマリタグを考慮する場合、このタグはメトリクス名の一部です。
<TAGS>
- トレースメトリクスタグ、可能なタグは、
env
、service
、version
、resource
、sublayer_type
、sublayer_service
、http.status_code
、http.status_class
、Datadog Agent タグ(ホストと第 2 プライマリタグを含む)です。注: スパンに設定されたタグは数に含められず、トレースメトリクスのタグとして利用できません。
メトリクスサフィックス
Hits
trace.<SPAN_NAME>.hits
- 前提条件: このメトリクスは、すべての APM サービスに存在します。
説明: 特定のスパンのヒット数を表します。
メトリクスタイプ: COUNT。
タグ: env
、service
、version
、resource
、resource_name
、http.status_code
、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ。 trace.<SPAN_NAME>.hits.by_http_status
- 前提条件: このメトリクスは、http メタデータが存在する場合 HTTP/WEB APM サービスに存在します。
説明: 特定のスパンのブレイクダウンの HTTP ステータスコード別ヒット数を表します。
メトリクスタイプ: COUNT。
タグ: env
、service
、version
、resource
、resource_name
、http.status_class
、http.status_code
、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ。
レイテンシー分布
trace.<SPAN_NAME>
- 前提条件: このメトリクスは、どの APM サービスにも存在します。
説明: 異なる環境と第 2 プライマリタグにまたがるすべてのサービス、リソース、およびバージョンのレインテンシー分布を表現します。
メトリクスタイプ: DISTRIBUTION。
タグ: env
、service
、resource
、resource_name
、version
、synthetics
、第 2 プライマリタグ。
エラー
trace.<SPAN_NAME>.errors
- 前提条件: このメトリクスは、すべての APM サービスに存在します。
説明: 特定のスパンのエラー数を表します。
メトリクスタイプ: COUNT。
タグ: env
、service
、version
、resource
、resource_name
、http.status_code
、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ。 trace.<SPAN_NAME>.errors.by_http_status
- 前提条件: このメトリクスは、すべての APM サービスに存在します。
説明: 特定のスパンのエラー数を表します。
メトリクスタイプ: COUNT。
タグ: env
、service
、version
、resource
、http.status_class
、http.status_code
、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ。
スパン数
注: これは非推奨のネームスペースです。
trace.<SPAN_NAME>.span_count
- 前提条件: このメトリクスは、すべての APM サービスに存在します。
説明: 特定のインターバルで収集されたスパンの量を表します。
メトリクスタイプ: COUNT。
タグ: env
、service
、resource
、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ。 trace.<SPAN_NAME>.span_count.by_http_status
- 前提条件: このメトリクスは、http メタデータが存在する場合 HTTP/WEB APM サービスに存在します。
説明: 特定のインターバルブレイクダウンで収集されたスパンの量を HTTP ステータスコード別に表します。
メトリクスタイプ: COUNT。
タグ: env
、service
、resource
、http.status_class
、http.status_code
、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ。
Duration
trace.<SPAN_NAME>.duration
- 前提条件: このメトリクスは、すべての APM サービスに存在します。
説明: 収集サービスで見られる子スパンを含む、時間間隔内のスパンのコレクションの合計時間を測定します。Datadog では、ほぼすべてのユースケースにおいて、平均レイテンシーまたはパーセンタイルの計算にレイテンシー分布を使用することが推奨されています。ホストタグフィルターを使用して平均レイテンシーを計算するには、このメトリクスを次の式で使用することができます。
sum:trace.<SPAN_NAME>.duration{<FILTER>}.rollup(sum).fill(zero) / sum:trace.<SPAN_NAME>.hits{<FILTER>}
このメトリクスは、パーセンタイル集計をサポートしていません。詳細については、レイテンシー分布セクションをご覧ください。
メトリクスタイプ: GAUGE.
タグ: env
、service
、resource
、http.status_code
、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ。
継続時間
trace.<SPAN_NAME>.duration.by_http_status
- 前提条件: このメトリクスは、http メタデータが存在する場合 HTTP/WEB APM サービスに存在します。
説明: 各 HTTP ステータスのスパンの収集にかかる合計時間を計測します。具体的には、1 回のインターバルおよび特定の HTTP ステータスで、すべてのスパンにかかった相対時間(子処理を待機していた時間を含む)です。
メトリクスタイプ: GAUGE。
タグ: env
、service
、resource
、http.status_class
、http.status_code
、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ。 trace.<SPAN_NAME>.duration.by_service
- 前提条件: このメトリクスは、すべての APM サービスに存在します。
説明: 各サービスで実際にかかった総処理時間を計測します(子処理を待機していた時間は除外されます)。
メトリクスタイプ: GAUGE。
タグ: env
、service
、resource
、sublayer_service
、http.status_code
、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ。 trace.<SPAN_NAME>.duration.by_type
- 前提条件: このメトリクスは、すべての APM サービスに存在します。
説明: 各サービスタイプで実際にかかる処理の合計時間を計測します。
メトリクスタイプ: GAUGE。
タグ: env
、service
、resource
、sublayer_type
、http.status_code
、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ。 trace.<SPAN_NAME>.duration.by_type.by_http_status
- 前提条件: このメトリクスは、http メタデータが存在する場合 HTTP/WEB APM サービスに存在します。
説明: 各サービスタイプおよび HTTP ステータスコードで実際にかかった処理の合計時間を計測します。
メトリクスタイプ: GAUGE。
タグ: env
、service
、resource
、sublayer_type
、http.status_class
、http.status_code
、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ。 trace.<SPAN_NAME>.duration.by_service.by_http_status
- 前提条件: このメトリクスは、http メタデータが存在する場合 HTTP/WEB APM サービスに存在します。
説明: 各サービスおよび HTTP ステータスコードで実際にかかった処理の合計時間を計測します。
メトリクスタイプ: GAUGE。
タグ: env
、service
、resource
、sublayer_service
、http.status_class
、http.status_code
、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ。
Apdex
trace.<SPAN_NAME>.apdex
- 前提条件: このメトリクスは、すべての HTTP/WEB APM サービスに存在します。
説明: 各ウェブサービスの Apdex スコアを計測します。
メトリクスタイプ: GAUGE。
タグ: env
、service
、resource
/ resource_name
、version
、synthetics
、第 2 プライマリタグ。
次のレガシー apdex メトリクスは非推奨になりました。
trace.<SPAN_NAME>.apdex.by.resource_<2ND_PRIM_TAG>_service
- 前提条件: このメトリクスは、すべての HTTP/WEB APM サービスに存在します。
説明: リソース、第 2 プライマリタグ、サービスのすべての組み合わせの Apdex スコアを表します。
メトリクスタイプ: GAUGE。
タグ: env
、service
、resource
/ resource_name
、第 2 プライマリタグ。 trace.<SPAN_NAME>.apdex.by.resource_service
- 前提条件: このメトリクスは、すべての HTTP/WEB APM サービスに存在します。
説明: リソースとウェブサービスの各組み合わせの Apdex スコアを計測します。
メトリクスタイプ: GAUGE。
タグ: env
、service
、resource
/ resource_name
。 trace.<SPAN_NAME>.apdex.by.<2ND_PRIM_TAG>_service
- 前提条件: このメトリクスは、すべての HTTP/WEB APM サービスに存在します。
説明: 第 2 プライマリタグとウェブサービスの各組み合わせの Apdex スコアを計測します。
メトリクスタイプ: GAUGE。
タグ: env
、service
、第 2 プライマリタグ。 trace.<SPAN_NAME>.apdex.by.service
- 前提条件: このメトリクスは、すべての HTTP/WEB APM サービスに存在します。
説明: 各ウェブサービスの Apdex スコアを計測します。
メトリクスタイプ: GAUGE。
タグ: env
、service
。
その他の参考資料