node_exporter入れると取れるちょっとマニアックなメトリクス

モニタリングツール系ってagent入れればロードアベレージ、ディスク使用量、メモリ使用量、Disk IO、ネットワークトラフィックなどはどれも取れると思います。

ただしそれらのメトリクスだけではトラブルシューティングに不十分な場合があります。
なおここではアプリケーション固有のメトリクスの話は除外します。


なので普通は下記のようなステップになると思います。
・よくわからんエラーがでる
・どうも調べていくと〜というメトリクスをモニタリングした方がいいらしいとわかる
・モニタリングスクリプトを書いて仕込む
・再発する
・再発時のメトリクスをチェックする


ところがGitHub - prometheus/node_exporter: Exporter for machine metricsを入れていると最初からかなりのメトリクスを収集できます。なので普段はGrafanaでグラフ化してなくても障害時だけグラフを作ってチェックすることも可能です。

そのようなメトリクスの例としては下記があります。


TIME_WAIT
node_sockstat_TCP_twでチェックできる。
遭遇しそうな事例はnet.ipv4.tcp_tw_recycle = 1したらTIME_WAITが減った話 - wyukawa’s blog


dentry cache
node_memory_Slabでチェックできる。
遭遇しそうな事例はdentry cacheの解放 - wyukawa’s blog


エントロピー
node_entropy_available_bitsでチェックできる。
遭遇しそうな事例はhaveged入れたらOracle DBに対するsqoop importでConnection resetが出なくなった - wyukawa’s blog


AnonHugePages
node_memory_AnonHugePagesでチェックできる。
遭遇しそうな事例はSREグループができてこの半年間やってきたこと