ハトネコエ Web がくしゅうちょう

プログラミングやサーバー・Web制作、チームマネジメントなど得た技術のまとめ

Datadog のメモリ監視に関するダッシュボード設定

「君のアカウント、試用版だから有料版にアップグレードするか無料版にダウングレードするかしないと消すね」
Datadog から警告が来たので、もし設定しなおす場合の参考用に。

1. メモリを used, buffers, cached, free の分け方で見る場合

free コマンドで言うところの used, buffers, cached, free で分けて見る場合です。

グラフはこんな感じ。

f:id:nekonenene:20171128003424p:plain

それの設定はこうする。

f:id:nekonenene:20171128004118p:plain

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 が当たりますのでそれを使います。

こういうグラフになります。

f:id:nekonenene:20171128010845p:plain

それの設定はこう。

f:id:nekonenene:20171128010955p:plain

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. で紹介したグラフも並べておくと、なんとなく充実感を持てると思います。