🗿

cAdvisor でコンテナの LoadAverage の取得を有効にする

2021/04/26に公開

https://github.com/google/cadvisor

デフォルトで取得できると思っていて油断していました。

結論

--enable_load_reader=true を起動オプションに追加する。
たとえば以下のような形。

/usr/bin/docker run --name cadvisor --rm --net=host\
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:ro \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--volume=/dev/disk/:/dev/disk:ro \
google/cadvisor:v0.33.0 --enable_load_reader=true

--net=host オプションを指定しているのは、cAdvisor で他コンテナの Load Average を取得するためには以下の条件が必要なためです。

  • ホストネットワーク内で起動させる (--net=host を指定する)
  • cAdvisor をHostコンピューター上で直接起動する

条件を満たさずに起動すると以下のようなエラーが出力されます。

Could not initialize cpu load reader: failed to create a netlink based cpuload reader: failed to get netlink family id for task stats: netlink request failed with error errno 0

ref. 関連する議論
https://github.com/google/cadvisor/issues/1287

そのほかの cAdvisor オプション

以下の ReadMe に、指定可能なオプションの一覧が記述されています。

https://github.com/google/cadvisor/blob/master/docs/runtime_options.md

Discussion