トレースメトリクス

概要

トレース収集の有効化とアプリケーションのインスツルメントを行うと、トレースアプリケーションメトリクスが収集されます。

トレースメトリクス

これらのメトリクスは、リクエスト回数、エラー回数、およびレイテンシーの測定値をキャプチャします。これらは、トレース取り込みサンプリングの構成に関係なく、アプリケーションの 100% のトラフィックに基づいて計算されます。これらのメトリクスを使用して、サービスやリソースの潜在的なエラーを発見し、ダッシュボード、モニター、SLO を作成することで、アプリケーションのトラフィックを完全に可視化することができます。

: アプリケーションやサービスが OpenTelemetry ライブラリでインスツルメンテーションされ、SDK レベルやコレクターレベルでサンプリングを設定した場合、APM メトリクスはサンプリングされたデータセットに基づいて計算されます。

トレースメトリクスは、インテグレーション言語によって、サービスエントリースパンや特定のオペレーションに対して生成されます。例えば、Django インテグレーションでは、様々な操作を表すスパン (Django リクエスト用のルートスパン 1 つ、各ミドルウェア用のスパン 1 つ、ビュー用のスパン 1 つ) からトレースメトリクスを生成しています。

トレースメトリクスのネームスペースは、次のようなフォーマットになっています。

  • trace.<スパン名>.<メトリクスサフィックス>
  • trace.<スパン名>.<メトリクスサフィックス>.<第 2 プライマリタグ>_service

次の定義と組み合わせます。

<SPAN_NAME>
操作の名前または span.name(例: redis.commandpylons.requestrails.requestmysql.query)。
<METRIC_SUFFIX>
メトリクスの名前(例: durationhitsspan_count)。以下のセクションを参照してください。
<2ND_PRIM_TAG>
メトリクス名が 第 2 プライマリタグを考慮する場合、このタグはメトリクス名の一部です。
<TAGS>
トレースメトリクスタグ、可能なタグは、envserviceversionresourcesublayer_typesublayer_servicehttp.status_codehttp.status_class、Datadog Agent タグ(ホストと第 2 プライマリタグを含む)です。注: スパンに設定されたタグは数に含められず、トレースメトリクスのタグとして利用できません。

メトリクスサフィックス

Hits

trace.<SPAN_NAME>.hits
前提条件: このメトリクスは、すべての APM サービスに存在します。
説明: 特定のスパンのヒット数を表します。
メトリクスタイプ: COUNT
タグ: envserviceversionresourceresource_namehttp.status_code、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ
trace.<SPAN_NAME>.hits.by_http_status
前提条件: このメトリクスは、http メタデータが存在する場合 HTTP/WEB APM サービスに存在します。
説明: 特定のスパンのブレイクダウンの HTTP ステータスコード別ヒット数を表します。
メトリクスタイプ: COUNT
タグ: envserviceversionresourceresource_namehttp.status_classhttp.status_code、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ

レイテンシー分布

trace.<SPAN_NAME>
前提条件: このメトリクスは、どの APM サービスにも存在します。
説明: 異なる環境と第 2 プライマリタグにまたがるすべてのサービス、リソース、およびバージョンのレインテンシー分布を表現します。
メトリクスタイプ: DISTRIBUTION
タグ: envserviceresourceresource_nameversionsynthetics第 2 プライマリタグ

エラー

trace.<SPAN_NAME>.errors
前提条件: このメトリクスは、すべての APM サービスに存在します。
説明: 特定のスパンのエラー数を表します。
メトリクスタイプ: COUNT
タグ: envserviceversionresourceresource_namehttp.status_code、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ
trace.<SPAN_NAME>.errors.by_http_status
前提条件: このメトリクスは、すべての APM サービスに存在します。
説明: 特定のスパンのエラー数を表します。
メトリクスタイプ: COUNT
タグ: envserviceversionresourcehttp.status_classhttp.status_code、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ

スパン数

: これは非推奨のネームスペースです。

trace.<SPAN_NAME>.span_count
前提条件: このメトリクスは、すべての APM サービスに存在します。
説明: 特定のインターバルで収集されたスパンの量を表します。
メトリクスタイプ: COUNT
タグ: envserviceresource、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ
trace.<SPAN_NAME>.span_count.by_http_status
前提条件: このメトリクスは、http メタデータが存在する場合 HTTP/WEB APM サービスに存在します。
説明: 特定のインターバルブレイクダウンで収集されたスパンの量を HTTP ステータスコード別に表します。
メトリクスタイプ: COUNT
タグ: envserviceresourcehttp.status_classhttp.status_code、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ

Duration

Datadogでは、代わりに DDSketch を使用して分散メトリクスをトレースすることを推奨しています。
trace.<SPAN_NAME>.duration
前提条件: このメトリクスは、すべての APM サービスに存在します。
説明:  収集サービスで見られる子スパンを含む、時間間隔内のスパンのコレクションの合計時間を測定します。Datadog では、ほぼすべてのユースケースにおいて、平均レイテンシーまたはパーセンタイルの計算にレイテンシー分布を使用することが推奨されています。ホストタグフィルターを使用して平均レイテンシーを計算するには、このメトリクスを次の式で使用することができます。
sum:trace.<SPAN_NAME>.duration{<FILTER>}.rollup(sum).fill(zero) / sum:trace.<SPAN_NAME>.hits{<FILTER>}
このメトリクスは、パーセンタイル集計をサポートしていません。詳細については、レイテンシー分布セクションをご覧ください。 メトリクスタイプ: GAUGE.
タグ: envserviceresourcehttp.status_code、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ

継続時間

このトレースメトリクスの使用方法は時代遅れです。代わりに、DDSketch を使用してディストリビューションメトリクスをトレースすることが推奨されます。
trace.<SPAN_NAME>.duration.by_http_status
前提条件: このメトリクスは、http メタデータが存在する場合 HTTP/WEB APM サービスに存在します。
説明: 各 HTTP ステータスのスパンの収集にかかる合計時間を計測します。具体的には、1 回のインターバルおよび特定の HTTP ステータスで、すべてのスパンにかかった相対時間(子処理を待機していた時間を含む)です。
メトリクスタイプ: GAUGE
タグ: envserviceresourcehttp.status_classhttp.status_code、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ
trace.<SPAN_NAME>.duration.by_service
前提条件: このメトリクスは、すべての APM サービスに存在します。
説明: 各サービスで実際にかかった総処理時間を計測します(子処理を待機していた時間は除外されます)。
メトリクスタイプ: GAUGE
タグ: envserviceresourcesublayer_servicehttp.status_code、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ
trace.<SPAN_NAME>.duration.by_type
前提条件: このメトリクスは、すべての APM サービスに存在します。
説明:サービスタイプで実際にかかる処理の合計時間を計測します。
メトリクスタイプ: GAUGE
タグ: envserviceresourcesublayer_typehttp.status_code、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ
trace.<SPAN_NAME>.duration.by_type.by_http_status
前提条件: このメトリクスは、http メタデータが存在する場合 HTTP/WEB APM サービスに存在します。
説明:サービスタイプおよび HTTP ステータスコードで実際にかかった処理の合計時間を計測します。
メトリクスタイプ: GAUGE
タグ: envserviceresourcesublayer_typehttp.status_classhttp.status_code、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ
trace.<SPAN_NAME>.duration.by_service.by_http_status
前提条件: このメトリクスは、http メタデータが存在する場合 HTTP/WEB APM サービスに存在します。
説明:サービスおよび HTTP ステータスコードで実際にかかった処理の合計時間を計測します。
メトリクスタイプ: GAUGE
タグ: envserviceresourcesublayer_servicehttp.status_classhttp.status_code、Datadog Host Agent からのすべてのホストタグ、第 2 プライマリタグ

Apdex

trace.<SPAN_NAME>.apdex
前提条件: このメトリクスは、すべての HTTP/WEB APM サービスに存在します。
説明: 各ウェブサービスの Apdex スコアを計測します。
メトリクスタイプ: GAUGE
タグ: envserviceresource / resource_nameversionsynthetics第 2 プライマリタグ

次のレガシー apdex メトリクスは非推奨になりました。

trace.<SPAN_NAME>.apdex.by.resource_<2ND_PRIM_TAG>_service
前提条件: このメトリクスは、すべての HTTP/WEB APM サービスに存在します。
説明: リソース、第 2 プライマリタグ、サービスのすべての組み合わせの Apdex スコアを表します。
メトリクスタイプ: GAUGE
タグ: envserviceresource / resource_name第 2 プライマリタグ
trace.<SPAN_NAME>.apdex.by.resource_service
前提条件: このメトリクスは、すべての HTTP/WEB APM サービスに存在します。
説明: リソースとウェブサービスの各組み合わせの Apdex スコアを計測します。
メトリクスタイプ: GAUGE
タグ: envserviceresource / resource_name
trace.<SPAN_NAME>.apdex.by.<2ND_PRIM_TAG>_service
前提条件: このメトリクスは、すべての HTTP/WEB APM サービスに存在します。
説明: 第 2 プライマリタグとウェブサービスの各組み合わせの Apdex スコアを計測します。
メトリクスタイプ: GAUGE
タグ: envservice第 2 プライマリタグ
trace.<SPAN_NAME>.apdex.by.service
前提条件: このメトリクスは、すべての HTTP/WEB APM サービスに存在します。
説明: 各ウェブサービスの Apdex スコアを計測します。
メトリクスタイプ: GAUGE
タグ: envservice

その他の参考資料