这里对云平台的节点、命名空间资源的常用表达式进行举例说明。
节点
概述 | 表达式 | 说明 |
---|---|---|
节点CPU使用率 | sum by (host_ip, node_name) (avg by(mode,host_ip,node_name)(irate(node_cpu_seconds_total{mode!="idle"}[5m])) * 100) |
单位: % |
节点内存使用率 | (node_memory_MemTotal_bytes - node_memory_MemFree_bytes - node_memory_Buffers_bytes - node_memory_Slab_bytes - node_memory_Cached_bytes) / node_memory_MemTotal_bytes * 100 |
单位: % |
节点磁盘IO使用率 | irate(node_disk_io_time_seconds_total{device=~"(sd|vd)[a-z]+|nvme[0-9]+n[0-9]+"}[5m]) * 100 |
单位: % |
节点磁盘IO延迟 | (irate(node_disk_read_time_seconds_total{device=~"(sd|vd)[a-z]+|nvme[0-9]+n[0-9]+"}[5m]) + irate(node_disk_write_time_seconds_total[5m])) / (irate(node_disk_reads_completed_total[5m]) + irate(node_disk_writes_completed_total[5m]) > 0) * 1000 * 1000 |
单位: μs |
节点网络带宽 | 部署网络,控制台网络,管理网络,存储集群管理/业务网络: - 接收带宽: irate(node_network_receive_bytes_total{device="br-roller"}[5m]) - 发送带宽: irate(node_network_transmit_bytes_total{device="br-roller"}[5m]) 私有网络,外部网络,业务心跳网络: - 接收带宽: ecms_node_network_receive_byte_rate{device="br-vxlan"} - 发送带宽: ecms_node_network_transmit_byte_rate{device="br-vxlan"} |
单位: Bps,device 代表集群中不同的网络类型,可选值如下: - br-roller,部署网络 - br-pub,控制台网络 - br-mgmt,管理网络 - br-storage,存储集群管理网络 - br-storagepub,存储集群业务网络 - br-vxlan,业务心跳网络 - br-ex,外部网络 - br-prv.*,私有网络,需要将 device 表达式替换成 {device=~”br-prv.*“} |
节点网络包速率 | 部署网络,控制台网络,管理网络,存储集群管理/业务网络: - 接收速率: irate(node_network_receive_packets_total{device="br-roller"}[5m]) - 发送速率: irate(node_network_transmit_packets_total{device="br-roller"}[5m]) 私有网络,外部网络,业务心跳网络: - 接收带宽: ecms_node_network_receive_packet_rate{device="br-vxlan"} - 发送带宽: ecms_node_network_transmit_packet_rate{device="br-vxlan"} |
单位: pps,device 取值同上 |
节点负载 | 过去 1 分钟:sum by (host_ip, node_name) (node_load1)/count by (host_ip, node_name) (node_load1) 过去 5 分钟: sum by (host_ip, node_name) (node_load5)/count by (host_ip, node_name) (node_load5) 过去 15 分钟: sum by (host_ip, node_name) (node_load15)/count by (host_ip, node_name) (node_load15) |
- |
节点状态 | kube_node_status_condition{condition="Ready",status="true"} |
1:状态就绪 0:状态未就绪 |
命名空间
概述 | 表达式 | 说明 |
---|---|---|
容器CPU使用量 | round(sum by (namespace, pod, container) (irate(container_cpu_usage_seconds_total{container!="", image!="", pod="example-pod", namespace="example", container=~"example-container"}[5m])), 0.001) |
单位:无,表示容器 CPU 使用时间的变化速率(即使用量),pod,namespace,container 的值需替换成集群中存在的资源 |
容器内存使用量 | sum by (namespace, pod, container) (container_memory_working_set_bytes{container!="", image!="", pod="example-pod", namespace="example", container=~"example-container"}) |
单位:bytes |
容器共享网络带宽 | 接收带宽:irate(container_network_receive_bytes_total{namespace="example", pod="example-pod"}[5m]) 发送带宽: irate(container_network_transmit_bytes_total{namespace="example", pod="example-pod"}[5m]) |
单位:Bps,计算 pod 内所有容器带宽总和 |
容器共享网络包速率 | 接收速率:irate(container_network_receive_packets_total{namespace="example", pod="example-pod"}[5m]) 发送速率: irate(container_network_transmit_packets_total{namespace="example", pod="example-pod"}[5m]) |
单位:pps,计算 pod 内所有容器速率总和 |
容器状态 | kube_pod_container_status_ready{namespace="example"} unless on (namespace, pod, container) (kube_pod_container_status_terminated_reason{reason="Completed"} == 1) |
0:有容器未就绪 1:容器状态正常 |
容器重启 | (kube_pod_container_status_restarts_total{namespace="example"} - (kube_pod_container_status_restarts_total{namespace="example"} offset 6m)) |
大于 0:有容器发生重启 等于 0:没有容器发生重启 |
容器持久卷使用率 | (1 - kubelet_volume_stats_available_bytes{job="kubelet", namespace="example"} / kubelet_volume_stats_capacity_bytes{job="kubelet", namespace="example"}) * 100 |
单位:% |
容器持久卷状态 | kube_persistentvolumeclaim_status_phase{phase=~"Lost|Pending",job="kube-state-metrics", namespace="example"} |
0:状态正常 1:状态错误 |