最近更新时间:2023.10.30 15:47:57
首次发布时间:2023.10.30 15:47:57
分布式云原生平台控制台中预置了常见的集群基础资源监控大盘。本文为您介绍如何配置和查看集群基础资源的 Prometheus 监控信息。
分布式云原生平台集群已接入托管 Prometheus,并同步安装了 node-exporter 组件。详情请参见:prometheus-agent 组件。
将分布式云原生平台中的容器集群正确接入托管 Prometheus,并安装了对应的组件后,无需额外配置,即可查看集群基础资源监控大盘。
您可以查看集群整体的监控信息,包括:集群节点信息(节点数量、未就绪节点数)、集群容器组数量、集群内存信息(内存使用量、内存使用率)、集群 CPU 信息(CPU 使用量、CPU 使用率)等。支持设置查询的时间段,并指定刷新方式(手动刷新、自动刷新)。
您可以查看指定节点的监控信息,包括:节点内存信息(内存使用量、内存使用率)、节点 CPU 信息(CPU 使用量、CPU 使用率、CPU 负载)、磁盘信息(磁盘使用率、磁盘读写 IOPS)等。支持设置查询的时间段,并指定刷新方式(手动刷新、自动刷新)。
您可以查看指定命名空间下容器组(Pod)的监控信息,包括:Pod 内存信息(内存使用量、内存使用率)、Pod CPU 信息(CPU 使用量、CPU 使用率)、Pod 网络信息(流入速率、流出速率)等。支持设置查询的时间段,并指定刷新方式(手动刷新、自动刷新)。
说明
您可以查看单个 Pod 的监控信息,也可以选择 全部,方便您找出系统中资源使用率较高的 Pod。
您可以查看指定命名空间下容器(Container)的监控信息,包括:Container 内存信息(内存使用量、内存使用率)、Container CPU 信息(CPU 使用量、CPU 使用率)等。支持设置查询的时间段,并指定刷新方式(手动刷新、自动刷新)。
说明
您可以查看单个 Container 的监控信息,也可以选择 全部,方便您找出 Pod 中资源使用率较高的 Container。
您可以查看命名空间下所有或指定 PVC 的监控信息,包括:容量使用率和 inode 使用率。支持设置查询的时间段,并指定刷新方式(手动刷新、自动刷新)。
集群基础资源监控大盘的指标清单如下表所示。
说明
如果您需要在托管 Prometheus 中的 Explore 功能或告警中心使用上述 PromQL 语句查看具体的指标或配置告警,请修改或删除语句中关于集群、节点、容器组的变量。例如:将 cluster=~"$Cluster"
参数中的$Cluster
变量修改为具体的集群 ID ,或直接删除该参数。
大盘分类 | 大盘名称 | 指标单位 | PromQL 语句 |
---|---|---|---|
集群监控 | 节点数量 | Count | count(kube_node_info{cluster="$clusterId",kernel_version!=""}) |
未就绪节点数 | Count | count(kube_node_info{cluster="$clusterId",kernel_version!=""})-count(kube_node_status_condition{cluster="$clusterId",condition="Ready",condition="Ready",status="true",node!~"vci.*"} == 1) | |
容器组数量 | Count | count(kube_pod_info{cluster="$clusterId"}) | |
集群内存用量 | Byte | sum(node_memory_MemTotal_bytes{cluster="$clusterId"}-node_memory_MemAvailable_bytes{cluster="$clusterId"})by(cluster) | |
集群内存使用率 | % | 100*(sum(node_memory_MemTotal_bytes{cluster="$clusterId"}-node_memory_MemAvailable_bytes{cluster="$clusterId"})by(cluster)/sum(node_memory_MemTotal_bytes{cluster="$clusterId"})) | |
集群 CPU 用量 | Core | sum (irate(node_cpu_seconds_total{cluster="$clusterId",mode="user"}[5m])) by(cluster) | |
集群 CPU 使用率 | % | sum (irate(node_cpu_seconds_total{cluster="$clusterId",mode="user"}[5m]))by(cluster)*100/count(count(node_cpu_seconds_total{cluster="$clusterId"}) by (cpu,instance,cluster))by(cluster) | |
节点内存使用率 Top10 | % | topk(10,(node_memory_MemTotal_bytes{cluster="$clusterId"}-node_memory_MemAvailable_bytes{cluster="$clusterId"})/node_memory_MemTotal_bytes{cluster="$clusterId"})*100 | |
节点 CPU 使用率 Top10 | % | topk(10,(count(count(node_cpu_seconds_total{cluster="$clusterId"}) by(cpu,instance))by(instance)-avg(sum (irate(node_cpu_seconds_total{cluster="$clusterId",mode="idle"}[5m]))by(instance))by(instance))/count(count(node_cpu_seconds_total{cluster="$clusterId"}) by(cpu,instance))by(instance)*100) | |
容器组内存使用率 Top10(占 request) | % | topk(10,sum(container_memory_working_set_bytes{cluster="$clusterId",container!=""})by(pod)*100/sum(kube_pod_container_resource_requests{cluster="$clusterId",resource="memory",unit="byte",container!=""})by(pod)) | |
容器组 CPU 使用率 Top10(占 request) | % | topk(10,sum(rate(container_cpu_usage_seconds_total{cluster="$clusterId",container!=""}[1m]))by(pod)/sum(kube_pod_container_resource_requests{cluster="$clusterId",resource="cpu",container!=""})by(pod)*100) | |
容器组内存使用率 Top10(占 limit) | % | topk(10,sum(container_memory_working_set_bytes{cluster="$clusterId",container!=""})by(pod)/sum(kube_pod_container_resource_limits{cluster="$clusterId",resource="memory",unit="byte",container!=""})by(pod)*100) | |
容器组 CPU 使用率 Top10(占limit) | % | topk(10,sum(rate(container_cpu_usage_seconds_total{cluster="$clusterId",container!=""}[1m]))by(pod)/sum(kube_pod_container_resource_limits{cluster="$clusterId",resource="cpu",})by(pod)*100) | |
节点监控 | 节点内存用量 | Byte | node_memory_MemTotal_bytes{cluster="$clusterId",instance="$node"}-node_memory_MemAvailable_bytes{cluster="$clusterId",instance="$node"} |
节点内存使用率 | % | (node_memory_MemTotal_bytes{cluster="$clusterId",instance="$node"}-node_memory_MemAvailable_bytes{cluster="$clusterId",instance="$node"})/node_memory_MemTotal_bytes{cluster="$clusterId",instance="$node"}*100 | |
节点 CPU 用量 | Core | sum (irate(node_cpu_seconds_total{cluster="$clusterId",instance="$node",mode="user"}[5m]))by(instance) | |
节点 CPU 使用率 | % | sum (irate(node_cpu_seconds_total{cluster="$clusterId",instance="$node",mode="user"}[5m]))by(instance)/count(count(node_cpu_seconds_total{cluster="$clusterId",instance="$node"})by (cpu)) *100 | |
节点CPU 负载(5min) | - | node_load5{cluster="$clusterId",instance="$node"} | |
节点内存分配率(request) | % | (sum(kube_pod_container_resource_requests{cluster="$clusterId",node="$node",resource="memory"})/node_memory_MemTotal_bytes{cluster="$clusterId",node="$node"})*100 | |
节点内存分配率(limit) | % | (sum(kube_pod_container_resource_limits{cluster="$clusterId",node="$node",resource="memory"})/node_memory_MemTotal_bytes{cluster="$clusterId",node="$node"})*100 | |
节点 CPU 分配率(request) | % | (sum(kube_pod_container_resource_requests{cluster="$clusterId",node="$node",resource="cpu"})by(node)/count(count(node_cpu_seconds_total{cluster="$clusterId",instance="$node"}) by (cpu)))*100 | |
节点 CPU 分配率(limit) | % | (sum(kube_pod_container_resource_limits{cluster="$clusterId",node="$node",resource="cpu"})by(node)/count(count(node_cpu_seconds_total{cluster="$clusterId",node="$node"}) by (cpu)))*100 | |
磁盘使用率 | % | avg((node_filesystem_size_bytes{cluster=~"$clusterId",instance=~"$node",device!~'rootfs'}-(node_filesystem_avail_bytes{cluster=~"$clusterId",instance=~"$node",device!~'rootfs',fstype!~'tmpfs'}))/node_filesystem_size_bytes{cluster=~"$clusterId",instance=~"$node",device!~'rootfs'}*100)by(device) | |
磁盘读流量 | Byte/s | irate(node_disk_read_bytes_total{cluster=~"$clusterId",instance=~"$node",device=~"[a-z]*[a-z]"}[5m]) | |
磁盘写流量 | Byte/s | irate(node_disk_written_bytes_total{cluster=~"$clusterId",instance=~"$node",device=~"[a-z]*[a-z]"}[5m]) | |
磁盘写 IOPS | IOPS | irate(node_disk_writes_completed_total{cluster=~"$clusterId",instance=~"$node",device=~"[a-z]*[a-z]"}[5m]) | |
磁盘读 IOPS | IOPS | irate(node_disk_reads_completed_total{cluster=~"$clusterId",instance=~"$node",device=~"[a-z]*[a-z]"}[5m]) | |
inode 使用率 | % | avg((node_filesystem_files{cluster=~"$clusterId",instance="$node",device!~'rootfs',fstype!~'tmpfs'}-node_filesystem_files_free{cluster=~"$clusterId",instance="$node",device!~'rootfs',fstype!~'tmpfs'})/node_filesystem_files{cluster=~"$clusterId",instance="$node",device!~'rootfs',fstype!~'tmpfs'}*100)by(device) | |
网络流入流量速率 | Byte/s | irate(node_network_receive_bytes_total{cluster=~"$clusterId",instance=~"$node"}[5m]) | |
网络流出流量速率 | Byte/s | irate(node_network_transmit_bytes_total{cluster=~"$clusterId",instance=~"$node"}[5m]) | |
网络流入数据包数速率 | Packets/s | irate(node_network_receive_packets_total{cluster=~"$clusterId",instance=~"$node"}[5m]) | |
网络流出数据包速率 | Packets/s | irate(node_network_transmit_packets_total{cluster=~"$clusterId",instance=~"$node"}[5m]) | |
网络流入丢包率 | % | rate (node_network_receive_drop_total{cluster=~"$clusterId",instance="$node"}[5m])/rate(node_network_receive_packets_total{cluster=~"$clusterId",instance=~"$node"}[5m]) | |
网络流出丢包率 | % | rate(node_network_transmit_drop_total{cluster=~"$clusterId",instance="$node"}[5m])/rate(node_network_transmit_packets_total{cluster=~"$clusterId",instance=~"$node"}[5m]) | |
TCP连接数 | Count | node_sockstat_TCP_inuse{cluster="$clusterId",instance="$node"} | |
容器组数量 | Count | count(kube_pod_info{cluster="$clusterId",node="$node"})by(node) | |
容器组监控 | 容器组内存用量 | Byte | sum(container_memory_working_set_bytes{cluster="$clusterId",namespace="$namespace",pod=~"$pod",container!=""})by (pod) |
容器组内存使用率(占 limit) | % | sum(container_memory_working_set_bytes{cluster="$clusterId",namespace="$namespace",pod=~"$pod",container!=""})by(pod)*100/sum(kube_pod_container_resource_limits{cluster="$clusterId",namespace="$namespace",pod=~"$pod",container!="",resource="memory",unit="byte"})by(pod) | |
容器组内存使用率(占 request) | % | sum(container_memory_working_set_bytes{cluster="$clusterId",namespace="$namespace",pod=~"$pod",container!=""})by(pod)*100/sum(kube_pod_container_resource_requests{cluster="$clusterId",namespace="$namespace",pod=~"$pod",container!="",resource="memory",unit="byte"})by(pod) | |
容器组 CPU 用量 | Core | sum(rate(container_cpu_usage_seconds_total{cluster="$clusterId",namespace="$namespace",pod=~"$pod",container!=""}[1m]))by(pod) | |
容器组 CPU 使用率(占 limit) | % | (sum(rate(container_cpu_usage_seconds_total{cluster="$clusterId",namespace="$namespace",pod=~"$pod",container!=""}[1m]))by(pod)/sum(avg(kube_pod_container_resource_limits{cluster="$clusterId",namespace="$namespace",pod=~"$pod",resource="cpu",container!=""}))by(pod))*100 | |
容器组 CPU 使用率(占 request) | % | (sum(rate(container_cpu_usage_seconds_total{cluster="$clusterId",namespace="$namespace",pod=~"$pod",container!=""}[1m]))by(pod)/avg(sum(kube_pod_container_resource_requests{cluster="$clusterId",namespace="$namespace",resource="cpu",pod=~"$pod",container!=""})))*100 | |
容器组网络流入流量速率 | Byte/s | sum(avg(rate(container_network_receive_bytes_total{cluster=~"$clusterId",pod=~"$pod",namespace=~"$namespace"}[1m])) by (pod)) by (pod) | |
容器组网络流出流量速率 | Byte/s | sum(avg(rate (container_network_transmit_bytes_total{cluster=~"$clusterId",pod=~"$pod",namespace=~"$namespace"}[1m])) by (pod))by (pod) | |
容器组网络流入数据包速率 | Packets/s | sum(avg(rate (container_network_receive_packets_total{cluster=~"$clusterId",pod=~"$pod",namespace=~"$namespace"}[5m])) by (pod))by (pod) | |
容器组网络流出数据包速率 | Packets/s | sum(avg(rate (container_network_transmit_packets_total{cluster=~"$clusterId",pod=~"$pod",namespace=~"$namespace"}[5m])) by (pod))by (pod) | |
容器组网络流入丢包率 | % | avg(rate(container_network_receive_packets_dropped_total{cluster=~"$clusterId",pod=~"$pod",namespace=~"$namespace"}[5m])/rate(container_network_receive_packets_total{cluster=~"$clusterId",pod=~"$pod",namespace=~"$namespace"}[5m])* 100)by(pod) | |
容器组网络流出丢包率 | % | avg(rate(container_network_transmit_packets_dropped_total{cluster=~"$clusterId",pod=~"$pod",namespace=~"$namespace"}[5m])/rate(container_network_transmit_packets_total{cluster=~"$clusterId",pod=~"$pod",namespace=~"$namespace"}[5m])* 100)by(pod) | |
容器监控 | 内存用量 | Byte | container_memory_working_set_bytes{cluster="$clusterId",namespace="$namespace",container=~"$container",pod="$podname",container!=""} |
内存使用率(占 limit) | % | 100*container_memory_working_set_bytes{cluster="$clusterId",namespace="$namespace",container=~"$container",pod="$podname",container!=""}/ON(container)kube_pod_container_resource_limits{cluster="$clusterId",namespace="$namespace",container!="",container=~"$container",pod="$podname",resource="memory",unit="byte"} | |
内存使用率(占 request) | % | 100*container_memory_working_set_bytes{cluster="$clusterId",namespace="$namespace",container=~"$container",pod="$podname",container!=""}/ON(container)kube_pod_container_resource_requests{cluster="$clusterId",namespace="$namespace",container!="",container=~"$container",pod="$podname",resource="memory",unit="byte"} | |
CPU 用量 | Core | rate(container_cpu_usage_seconds_total{cluster="$clusterId",namespace="$namespace",container=~"$container",pod="$podname",container!=""}[1m]) | |
CPU 使用率(占 limit) | % | (rate(container_cpu_usage_seconds_total{cluster="$clusterId",namespace="$namespace",container=~"$container",pod="$podname",container!=""}[1m])/ON(container)kube_pod_container_resource_limits{cluster="$clusterId",namespace="$namespace",container=~"$container",resource="cpu",pod="$podname",container!=""})*100 | |
CPU 使用率(占 request) | % | (rate(container_cpu_usage_seconds_total{cluster="$clusterId",namespace="$namespace",container=~"$container",pod="$podname",container!=""}[1m])/ON(container)(kube_pod_container_resource_requests{cluster="$clusterId",namespace="$namespace",container=~"$container",resource="cpu",pod="$podname",container!=""}))*100 | |
存储卷声明监控 | 容量使用率 | % | (kubelet_volume_stats_used_bytes{cluster="$clusterId",namespace="$namespace",persistentvolumeclaim=~"$pvc"}/kubelet_volume_stats_capacity_bytes{cluster="$clusterId",namespace="$namespace",persistentvolumeclaim=~"$pvc"})*100 |
inode 使用率 | % | (kubelet_volume_stats_inodes_used{cluster="$clusterId",namespace="$namespace",persistentvolumeclaim=~"$pvc"}/(kubelet_volume_stats_inodes{cluster="$clusterId",namespace="$namespace",persistentvolumeclaim=~"$pvc"}))*100 |