Prometheus監控Kubernetes各項指標

Node監控

1.內存指標

node_memory_MemTotal_bytes: Node總內存大小

node_memory_MemAvailable_bytes:Node剩餘可用內存

node已用的內存大小計算公式:

node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes

2.CPU

node_load1:CPU1分鐘負載

node_load5:CPU5分鐘負載

node_load15:CPU15分鐘負載

CPU使用率計算公式:

1-avg(irate(node_cpu_seconds_total{mode="idle"}[30m])) by (instance)

3.分區使用

nodenode_filesystem_size_bytes:各個分區總空間

node_filesystem_avail_bytes:各分區剩餘空間

4.磁盤I/O

node_disk_io_time_seconds_total:磁盤I/O操作耗費時間

每秒磁盤讀取速度:

irate(node_disk_writes_completed_total[30m])

每秒磁盤寫入速度:

irate(node_disk_written_bytes_total[30m])

每秒磁盤I/O操作耗費時間計算公式:

irate(node_disk_io_time_seconds_total[30m])

每次I/O讀取耗時計算公式:

irate(node_disk_read_time_seconds_total[30m]) / irate(node_disk_reads_completed_total[30m])

每次I/O寫入耗時計算公式:

irate(node_disk_write_time_seconds_total[30m]) / irate(node_disk_writes_completed_total[30m])

5.網絡流量

網絡流量下載統計計算公式:

irate(node_network_receive_bytes_total{device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[30m])*8

網絡流量上傳統計計算公式:

irate(node_network_transmit_bytes_total{device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[30m])*8

Pod監控

1.POD內存使用率

container_memory_rss : 是Pod實際使用內存數

container_spec_memory_limit_bytes: 是分配給Pod的內存配額

sum(container_memory_rss{container!="POD",container!="alermanager",image!="",pod!=""})by(pod) / sum(container_spec_memory_limit_bytes{container!="",container!="POD"})by(pod) * 100 != +inf

2.POD的CPU使用率

container_cpu_usage_seconds_total:container累計使用的CPU時間,除以CPU的總時間,就得到了容器的CPU使用率

container_spec_cpu_quota:container的配額,爲容器指定的CPU個數*100000

sum(rate(container_cpu_usage_seconds_total{image!="",container!="POD",container!=""}[1m])) by (pod,namespace) / (sum(container_spec_cpu_quota{image!="",container!="POD",container!=""}/100000) by (pod,namespace)) * 100

3.POD的文件系統使用量

sum(container_fs_usage_bytes{image!="",container!="POD",container!=""}) by(pod, namespace) / 1024 / 1024 / 1024

 

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