Datadog のメモリ監視に関するダッシュボード設定
「君のアカウント、試用版だから有料版にアップグレードするか無料版にダウングレードするかしないと消すね」
と Datadog から警告が来たので、もし設定しなおす場合の参考用に。
1. メモリを used, buffers, cached, free の分け方で見る場合
free
コマンドで言うところの used, buffers, cached, free で分けて見る場合です。
グラフはこんな感じ。
それの設定はこうする。
JSONだとこういう設定になっている。
{ "viz": "timeseries", "requests": [ { "q": "avg:system.mem.free{*} by {host}, avg:system.mem.cached{*} by {host}, avg:system.mem.buffered{*} by {host}, avg:system.mem.used{*} by {host} - avg:system.mem.cached{*} by {host} - avg:system.mem.buffered{*} by {host}", "aggregator": "avg", "conditional_formats": [], "type": "area", "style": { "palette": "dog_classic" } } ], "autoscale": true, "status": "done" }
used には buffered と cached が含まれていて、 used + free = total になります。
ですので、下から
- (used - buffered - cached)
- buffered
- cached
- free
と領域を持つようなグラフになっています。
(used - buffered - cached) が使用メモリ容量とほぼイコールです。
2. メモリを available, not available で分ける場合
(used - buffered - cached) は使用メモリ容量とほぼイコールと上で書きましたが、厳密には異なります。
以下の記事が詳しいです。
Datadog では available は system.mem.usable が当たりますのでそれを使います。
こういうグラフになります。
それの設定はこう。
JSONでの記述はこうなっています。
{ "viz": "timeseries", "requests": [ { "q": "avg:system.mem.usable{*} by {host}, avg:system.mem.total{*} by {host} - avg:system.mem.usable{*} by {host}", "aggregator": "avg", "conditional_formats": [], "type": "area" } ], "autoscale": true, "status": "done" }
グラフの下部分がメモリ使用量だとわかりやすいので、下から
- (total - usable)
- usable
と領域を持つグラフにしています。
基本的にはこちらのグラフだけあれば充分ですが、 1. で紹介したグラフも並べておくと、なんとなく充実感を持てると思います。