- 重要な情報
- はじめに
- 用語集
- ガイド
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- Service Management
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
Datadog Agent と OpenTelemetry Collector Datadog エクスポーターは、OpenTelemetry でインスツルメントされたアプリケーションで生成できる OTLP (OpenTelemetry フォーマット) のメトリクスをインジェストすることができます。
以下の OTLP メトリクスタイプは、Datadog Agent と OpenTelemetry Collector Datadog エクスポーターでインジェストすることができます。
これらの OTLP のメトリクスタイプは、Datadog のメトリクスタイプにマッピングされます。
1 つの OTLP メトリクスは、その意味を示すサフィックスを持つ複数の Datadog メトリクスにマッピングされることがあります。
注: OpenTelemetry はメトリクス API のインスツルメント (Gauge
、Counter
、UpDownCounter
、Histogram
など) を提供しており、それらの計測値は OTLP メトリクス (Sum、Gauge、Histogram) としてエクスポートすることが可能です。OTLP メトリクスの他のソースも可能です。アプリケーションやライブラリは、生成する OTLP のメトリクスをカスタマイズすることができます。生成される OTLP メトリクスとそのカスタマイズ方法を理解するために、OpenTelemetry SDK または OTLP 生成アプリケーションのドキュメントをお読みください。
注: OpenTelemetry プロトコルは、メトリクスを時間で表現する 2 つの方法をサポートしています。累積一時性とデルタ一時性があり、以下に説明するメトリクスに影響します。CUMULATIVE に設定すると、アプリケーション (またはコレクター) の起動時にいくつかのデータポイントを破棄する可能性があるため、OpenTelemetry 実装の一時性設定を DELTA に設定します。詳細については、OpenTelemetry によるデルタ一時性メトリクスの生成をお読みください。
OTLP Sum は、あるタイムウィンドウで報告された測定値の合計を表します。例えば、データベースへの接続の総数やエンドポイントへのリクエストの総数を追跡するために、Sum を使うことができます。Sum にはマッピングに影響を与える 2 つの特徴があります。
デフォルトのマッピングは以下の通りです。
cumsum
算術関数を使用します。OTLP Gauge は、ある時刻にサンプリングされた値を表します。与えられたタイムウィンドウの最後の値だけが、OTLP のメトリクスに含まれます。
OTLP Gauge は集計セマンティックを提供しないので、Datadog Gauge にマップされます。整数と浮動小数点の両方の Gauge データポイントが Datadog のフォーマットで浮動小数点数にマップされます。
OTLP Histogram は、母集団の合計やカウントなどの特定の集計メトリクスを一連のバケットカウントとともに保存することで、与えられたタイムウィンドウにおける値の集合の統計的分布を表現するものです。ヒストグラムはマッピングに影響を与える 1 つの特徴を持っています。
デフォルトのマッピングは以下の通りです。
cumsum
算術関数を使用することができます。注: OTLP のヒストグラムメトリクスは、ディストリビューションメトリクスにマッピングされています。OTLP がこのデータを送信する方法のため、最大、最小、およびパーセンタイルの集計は、正確な計算ではなく、近似値です。
Datadog Agent と OpenTelemetry Collector Datadog エクスポーターでは、histogram
サブセクションで Histogram エクスポートを変更することができます。
mode
に counters
を指定すると、以下のようなメトリクスが生成されます。<METRIC_NAME>.bucket
、lower_bound
と upper_bound
でタグ付けされていますsend_aggregation_metrics
フラグが有効な場合、以下のメトリクスが生成されます。<METRIC_NAME>.sum
<METRIC_NAME>.count
<METRIC_NAME>.min
<METRIC_NAME>.max
注: send_aggregation_metrics
は、ディストリビューションモードを使用していない場合にのみ有効です。Datadog エクスポーター v0.75.0 以前、Datadog Agent v6.45.0 および v7.45.0 では、代わりに send_count_sum_metrics
を使用します。
OTLP Summary は、タイムウィンドウにわたる母集団の分位情報を伝えるレガシータイプです。OTLP Summary タイプは OpenTelemetry SDK では生成されませんが、後方互換性のために他のコンポーネントで生成されることがあります。
<METRIC_NAME>.sum
<METRIC_NAME>.count
<METRIC_NAME>.quantile
、 quantile
でタグ付けされていますOTLP はデータポイントレベルの属性とリソース属性の 2 種類の属性をサポートしています。これらの属性は OpenTelemetry のセマンティック規則に従い、よく知られたセマンティックを持つことができます。
Datadog Agent と OpenTelemetry Collector Datadog エクスポーターは、データポイントレベルの属性をタグとしてマッピングします。OpenTelemetry のセマンティック規則に従ったリソース属性は、同等の Datadog 規則が存在すればそれにマッピングされます。
resource_attributes_as_tags
フラグを使用すると、すべてのリソースの属性をタグとして追加することができます。
OpenTelemetry は、ホスト名に関する特定のセマンティック規則を定義しています。OTLP ペイロードが既知のホスト名属性を持つ場合、Datadog はこれらの規則に従い、その値をホスト名として使用しようとします。セマンティック規則は、以下の順序で考慮されます。
host
属性。datadog.host.name
、Datadog 固有のホスト名規則cloud.provider
セマンティック規則がベースk8s.node.name
と k8s.cluster.name
host.id
、一意のホスト IDhost.name
、システムホスト名以下のホスト名は無効とみなされ、破棄されます。
0.0.0.0
127.0.0.1
localhost
localhost.localdomain
localhost6.localdomain6
ip6-localhost
有効なホスト名が存在しない場合、Datadog はペイロードにシステムレベルのホスト名を割り当てます。 リモートホストからデータを送信する場合、パイプラインに ‘resource detection’ プロセッサーを追加することで、正確なホスト名解決を行うことができます。
デフォルトでは、累積モノトニック Sum タイプのメトリクスをエクスポートする、単一のアプリケーションから OpenTelemetry Counter インスツルメントを使用しているとします。次の表は、Datadog の動作をまとめたものです。
収集期間 | Counter 値 | OTLP Sum 値 | Datadog に報告される値 | Datadog アプリ内タイプ | 注 |
---|---|---|---|---|---|
#1 | [1,1,1,2,2,2,3,3] | 15 | なし | COUNT | 最初の収集期間の数値は報告されません。 |
#2 | [3,4,1,2] | 25 | 10 | COUNT | 値の差が報告されます。 |
#3 | [] | 25 | 0 | COUNT | この期間に新しい値は報告されませんでした。 |
デフォルトでは、累積 Sum タイプのメトリクスをエクスポートする、単一のアプリケーションから OpenTelemetry UpDownCounter インスツルメントを使用しているとします。次の表は、Datadog の動作をまとめたものです。
収集期間 | UpDownCounter 値 | OTLP Sum 値 | Datadog に報告される値 | Datadog アプリ内タイプ |
---|---|---|---|---|
#1 | [1,1,1,2,2,2,3,3] | 15 | 15 | GAUGE |
#2 | [3,-4,1,2] | 17 | 17 | GAUGE |
#3 | [-1] | 16 | 16 | GAUGE |
OpenTelemetry Gauge のインスツルメントである temperature
を、単一のアプリケーションから使用しているとします。
次の表は、Datadog の動作をまとめたものです。
収集期間 | Gauge インスツルメント | OTLP Gauge 値 | Datadog に報告される値 | Datadog アプリ内タイプ |
---|---|---|---|---|
#1 | 71.5 | 71.5 | 71.5 | GAUGE |
#2 | 72 | 72 | 72 | GAUGE |
#3 | 70 | 70 | 70 | GAUGE |
OpenTelemetry Histogram インスツルメントである request.response_time.histogram
を 2 つのウェブサーバーから使用しているとします。webserver:web_1
と webserver:web_2
です。ある収集期間において、 webserver:web_1
が [1,1,1,2,2,2,3,3]
という値のメトリクスを報告し、 webserver:web_2
が [1,1,2]
という値の同じメトリクスを報告しているとします。この収集期間中、次の 5 つの集計は、両方のウェブサーバーから収集されたすべての値のグローバルな統計的分布を表しています。
メトリクス名 | 値 | Datadog アプリ内タイプ |
---|---|---|
avg:request.response_time.distribution | 1.73 | GAUGE |
count:request.response_time.distribution | 11 | COUNT |
max:request.response_time.distribution | 3 | GAUGE |
min:request.response_time.distribution | 1 | GAUGE |
sum:request.response_time.distribution | 19 | COUNT |
分布についてもっと読むと、さらなる集計の構成方法を理解できます。
また、counters
モードを使用し、send_aggregation_metrics
フラグを有効にし、ヒストグラムのバケットの境界を [-inf, 2, inf]
とした場合、以下のメトリクスが報告されます。
メトリクス名 | 値 | タグ | Datadog アプリ内タイプ |
---|---|---|---|
request.response_time.distribution.count | 8 | 非該当 | COUNT |
request.response_time.distribution.sum | 15 | 非該当 | COUNT |
request.response_time.distribution.max | 3 | 非該当 | GAUGE |
request.response_time.distribution.min | 1 | 非該当 | GAUGE |
request.response_time.distribution.bucket | 6 | lower_bound:-inf 、upper_bound:2 | GAUGE |
request.response_time.distribution.bucket | 2 | lower_bound:2 、upper_bound:inf | GAUGE |
レガシー OTLP Summary のメトリクス、request.response_time.summary
をあるウェブサーバーから送信しているとします。ある収集期間において、ウェブサーバーは [1,1,1,2,2,3,3]
という値でメトリクスを報告したとします。最小分位数、最大分位数、および中央値分位数が有効になっている場合、次のメトリクスが報告されます。
メトリクス名 | 値 | タグ | Datadog アプリ内タイプ |
---|---|---|---|
request.response_time.distribution.count | 8 | 非該当 | COUNT |
request.response_time.distribution.sum | 15 | 非該当 | COUNT |
request.response_time.distribution.quantile | 1 | quantile:0 | GAUGE |
request.response_time.distribution.quantile | 2 | quantile:0.5 | GAUGE |
request.response_time.distribution.quantile | 3 | quantile:1.0 | GAUGE |
お役に立つドキュメント、リンクや記事: