システムパフォーマンス入門

パフォーマンスに詳しいインフラに憧れて

ユーザ用ツール

サイト用ツール


· 最終更新: 2025/11/23 by kurihara


04. Datadog基礎:モニター

モニターとは

モニターによって、問題があった場合に通知することができます。

モニター概要:https://docs.datadoghq.com/ja/getting_started/monitors/
モニターメトリックス:https://docs.datadoghq.com/ja/monitors/types/metric/


設定

検出方法

ロードアベレージ(CPU Load)

system.load.1{host:*} by {host} / system.cpu.num_cores{host:*} by {host}

参考:Datadogを使ったインフラ監視:ホストごとのメトリクス監視とアラート設定
単純なロードアベレージの値だけでは、マルチコアシステムの実際の負荷を正確に把握できません。
そこで、CPUのコア数を考慮したモニタリングを行います。

各ホスト(by {host})の1分間のロードアベレージ(system.load.1)をCPUコア数(system.cpu.num_cores)で割ることで、相対的な負荷を計算します。

CPUコア数の100%以上の負荷でアラート、200%以上でワーニングを設定
above or equal to
Alert threshold: >= 2.0
Warning threshold: >= 1.0

別のメモ
min(last_2m):avg:system.load.1{*} > 1 

2 分間の最小値が 1 を超えた場合、アラート = 2 分間ずっと 1 を超えていたらアラート

参考:Datadog メトリクスモニター作成入門 - あらびき日記

メモリー

(system.mem.total{host:*} by {host} - system.mem.usable{host:*} by {host}) / system.mem.total{host:*} by {host}

現在使っているメモリーのメトリックス(system.mem.used)は、キャッシュも含まれているので、
全メモリー容量(system.mem.total)から、残りの使えるメモリー(system.mem.usable)を引くことで求める。

例えば、全メモリー容量(system.mem.total)が10Gで、
残りの使えるメモリー(system.mem.usable)が2Gの場合、
現在使っているメモリーが8Gとなる。
10G - 2G = 8G

現在使っているメモリー ÷ 全メモリー容量で、何%使っているかがわかる。
8 / 10 = 0.75

参考:Datadogを使ったインフラ監視:ホストごとのメトリクス監視とアラート設定
各ホストの全RAM容量(system.mem.total)から使用可能なRAM容量(system.mem.usable)を引き、それを全RAM容量で割ることで使用率を計算します。

注意が必要なのが、system.mem.usedというメトリクスで、名前から使用されているメモリ量が分かりそうですが、キャッシュも含まれているのでそのままでは使いづらいです。クエリも複雑になるので、system.mem.usableを利用するのが良さそうです。

全容量の90%以上の利用率でアラート、80%以上でワーニング
above or equal to
Alert threshold: >= 0.9
Warning threshold: >= 0.8

参考
https://docs.datadoghq.com/metrics/guide/calculating-the-system-mem-used-metric/

ディスク使用率

system.disk.used{host:*,!device:*loop*,!device:*snap*,!device:*containers*} by {host,device} / system.disk.total{host:*,!device:*loop*,!device:*snap*,!device:*containers*} by {host,device}

参考:Datadogを使ったインフラ監視:ホストごとのメトリクス監視とアラート設定
各ホストの使用中のディスク容量(system.disk.used)を全ディスク容量(system.disk.total)で割ることで、使用率を計算します。
ループバックデバイスやLXDコンテナのディスクは!演算子で除外しています。

全容量の90%以上の利用率でアラート、80%以上でワーニングを設定しています。
above or equal to
Alert threshold: >= 0.9
Warning threshold: >= 0.8

参考

ホストごとに監視するには、各クエリの項の末尾にby {host}をつける必要があります。
これにより、全てのホストを個別に監視しすることができます。
同様にデバイス(by {device})やサービス(by {service})ごとに監視したり、組合せ(by {host,device})ごとに監視したりすることもできます。




通知




参考


· 最終更新: 2025/11/23 by kurihara

ページ用ツール