cadvisor和node-exporter cpu/mem/disk/net io/disk io指標來源

若有不對,歡迎批評指正

目錄

container

cpu

mem

net io

disk io

disk(filesystem)

node

cpu

mem

disk(filesystem) 

net io 

disk io


container

cpu

 

cat /sys/fs/cgroup/cpu,cpuacct/cpuacct.stat

mem

  cat /sys/fs/cgroup/memory/memory.usage_in_bytes

 如果存在memory.total_inactive_file,並且usage memory.total_inactive_file ,那麼usage=0,否則usage= usage - memory.total_inactive_file

 

net io

  1. 容器所有網卡設備:ls /sys/class/net

  2. 每個網卡的網絡io統計數據: 

        網絡接收: cat /sys/class/net/<網卡名稱>/statistics/rx_bytes

        網絡發送: cat /sys/class/net/<網卡名稱>/statistics/tx_bytes

 

  1. 會忽略以下前綴開頭的網卡:"lo", "veth", "docker"


  2. 忽略後默認只有【第一個】網卡有網絡io數據


  3. 例子: 某容器內總共有如下網卡設備:docker0,  eth0,  gre0,  gretap0,  lo


   忽略掉以lo, veth, docker開頭的網卡設備後,剩餘:eth0, gre0, gretap0

   忽略後剩下的網卡中"eth0"排第一個,因此查詢出來的網絡io中只有"eth0"的網絡io纔有值

 

disk io

 cat /proc/diskstats

disk(filesystem)

  1. 根據/proc/self/mountinfo得到掛載的文件類型,設備信息

  只支持以下fs type: "btrfs",  "overlay","tmpfs","xfs","zfs"

cat /proc/self/mountinfo

  2. 根據"mount"和"fs type"通過系統調用計算得出

 

node

cpu

cat /proc/stat

mem

cat /proc/meminfo

 

disk(filesystem) 

根據/proc/mounts裏面的內容,再通過系統調用的方式,得到磁盤統計信息

cat /proc/mounts

net io 

每個設備的recv|send

cat /proc/net/dev

disk io

cat /proc/diskstats

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章