【datadog】datadog Metrics ~ 基礎知識編 ~

◾️はじめに

Github copilot に以下の質問をしたところ
Metrics(メトリクス)ってのが必要そうなので
調べてみた

質問

例えば、以下のログがあったとします
~~~
[LOG] {"diff_rate": "18.3", "timestamp":"2026-01-01 12:23:31" }
~~~
diff_rate>=20.0で警告、diff_rate>=35.0でエラーとして
Slackに通知したい場合どうすればいいですか?

回答(一部抜粋)

Datadogでログからdiff_rateの値を抽出し、
しきい値に応じてSlackに通知するには、以下の手順で対応できます。

1. ログパース設定(ログ処理パイプライン)
2. ログベースのメトリクス作成 <<★今回のテーマ
3. モニター(アラート)作成
4. Slack連携

目次

【1】Metrics
 1)一般的な意味での「Metrics」とは?
 2)datadogでの「Metrics」とは?
【2】Metrics source
 1)Metrics sourceの確認方法
【3】Metricsの送信
 1)Metrics types (送信タイプ)

【1】Metrics

1)一般的な意味での「Metrics」とは?

* システムやソフトウェアの状態や活動状況を数値化したデータのこと

cf. Metrics(メトリクス) = 測定基準、尺度、計量、距離などを意味する “metric” の複数形
メトリクス種類 具体例
パフォーマンスメトリクス CPU使用率、メモリ使用率、ディスク使用率、レイテンシーなど|
システムメトリクス サーバ稼働状況、ネットワークのトラフィック量、エラー率など

補足:レイテンシー (Latency)

データ転送における遅延や待ち時間のことで
要求が処理されるまでにどのくらい時間がかかるかを表す指標

cf. Latency = 隠れていること、潜伏、潜在

2)datadogでの「Metrics」とは?

https://docs.datadoghq.com/ja/metrics/

より抜粋
~~~~~
メトリクスは、レイテンシーからエラー率、ユーザーのサインアップまで、
環境に関するあらゆる情報を経時的に追跡できる数値です。

Datadog では、メトリクスデータは値とタイムスタンプを持つデータポイント
として収集され、格納されます。
~~~~~

イメージ

[ 17.82,  22:11:01 ]
[  6.38,  22:11:12 ]
[  2.87,  22:11:38 ]
[  7.06,  22:12:00 ]

【2】Metrics source

* Metrics の元となる対象オブジェクトは以下の通り。

[1] Datadog Agents
[2] Cloud Integrations
[3] Datadog API
[4] Logs and APM

 => "Logs" については、以下の関連記事を参照のこと

datadog Metrics ~ Log-based Metrics ~
https://dk521123.hatenablog.com/entry/2025/06/30/154115

1)Metrics sourceの確認方法

* [Metrics]-[Metrics] を選択したら、左側に表示されているはず

【3】Metricsの送信

* メトリクスは、主に3 つの方法で Datadog に送信される

[1] Agent チェック
[2] DogStatsD
[3] Datadog の HTTP API

https://docs.datadoghq.com/ja/metrics/types/?tab=count#metric-types

1)Metrics types (送信タイプ)

* Datadog に送信される各メトリクスにはタイプがある

[1] COUNT(カウント)

* ある時間間隔内のイベント発生の合計数を送信

* 例: [1,1,1,2,2,2,3,3]
 => この値を合計(1+1+1+2+2+2+3+3)し、単一のデータポイントとして「15」を送信

[2] RATE(レート)

* ある時間間隔の 1 秒あたりのイベント発生の合計数

* 例: [1,1,1,2,2,2,3,3]で、フラッシュ間隔が 10 秒の場合
 => エージェントはこれを1秒あたりの平均値(15/10)として計算し、
  単一のデータポイントとして1.5を送信

[3] GAUGE(ゲージ)

* ある時間間隔のイベントのスナップショット
 => この代表的なスナップショット値は、時間間隔中に Agent に送信された最後の値

* 例: [71,71,71,71,71,71,71.5]
 => 最後に報告された数値 (この場合は 71.5) を GAUGE メトリクスの値として送信

[4] HISTOGRAM(ヒストグラム

* ある時間間隔の Agent 側で計算された一連の値の統計分布

* 例: [1,1,1,2,2,2,3,3] で request.response_time.histogram を送信する場合
メトリクス名 値 DATADOG アプリ内タイプ
request.response_time.histogram.avg 1.88 GAUGE
request.response_time.histogram.count 0.8 RATE
request.response_time.histogram.median 2 GAUGE
request.response_time.histogram.95percentile 3 GAUGE
request.response_time.histogram.max 3 GAUGE

[5] DISTRIBUTION(分布)

* 特定の時間間隔内における分散インフラ全体の値の統計分布

* 例: 2 つのウェブサーバー webserver:web_1 と webserver:web_2 
 webserver:web_1 が値 [1,1,1,2,2,2,3,3] 
 webserver:web_2 が値 [1,1,2]
 をrequest.response_time.distribution として送信する場合
メトリクス名 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

参考文献

https://zenn.dev/ta_toshio/scraps/81c1fce30efc94

関連記事

datadog ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2024/03/30/004746
datadog ~ 属性/ファセット/属性検索@ ~
https://dk521123.hatenablog.com/entry/2025/02/26/150349
datadog ~ タグ ~
https://dk521123.hatenablog.com/entry/2025/02/27/002502
datadog pipeline ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2025/04/14/145556
datadog pipeline ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2025/06/04/221715
datadog dashboard ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2025/02/09/000106
datadog Logs ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2025/02/14/200308
datadog Logs ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2025/02/15/213417
datadog Alert ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2025/02/16/232413
datadog Metrics ~ Log-based Metrics ~
https://dk521123.hatenablog.com/entry/2025/06/30/154115
Terraform ~ Datadog / 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/05/12/000000