一、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
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