◾️はじめに
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