You need to enable JavaScript to run this app.
导航

Prometheus 监控

最近更新时间2023.10.30 15:47:57

首次发布时间2023.10.30 15:47:57

分布式云原生平台控制台中预置了常见的集群基础资源监控大盘。本文为您介绍如何配置和查看集群基础资源的 Prometheus 监控信息。

前提条件

分布式云原生平台集群已接入托管 Prometheus,并同步安装了 node-exporter 组件。详情请参见:prometheus-agent 组件

操作步骤

将分布式云原生平台中的容器集群正确接入托管 Prometheus,并安装了对应的组件后,无需额外配置,即可查看集群基础资源监控大盘。

  1. 登录 分布式云原生控制台
  2. 在左侧导航栏选择 容器集群
  3. 单击目标集群名称,在集群管理页面的左侧导航栏选择 运维管理 > Prometheus 监控

集群监控

您可以查看集群整体的监控信息,包括:集群节点信息(节点数量、未就绪节点数)、集群容器组数量、集群内存信息(内存使用量、内存使用率)、集群 CPU 信息(CPU 使用量、CPU 使用率)等。支持设置查询的时间段,并指定刷新方式(手动刷新、自动刷新)。

alt

节点监控

您可以查看指定节点的监控信息,包括:节点内存信息(内存使用量、内存使用率)、节点 CPU 信息(CPU 使用量、CPU 使用率、CPU 负载)、磁盘信息(磁盘使用率、磁盘读写 IOPS)等。支持设置查询的时间段,并指定刷新方式(手动刷新、自动刷新)。

alt

容器组监控

您可以查看指定命名空间下容器组(Pod)的监控信息,包括:Pod 内存信息(内存使用量、内存使用率)、Pod CPU 信息(CPU 使用量、CPU 使用率)、Pod 网络信息(流入速率、流出速率)等。支持设置查询的时间段,并指定刷新方式(手动刷新、自动刷新)。

alt

说明

您可以查看单个 Pod 的监控信息,也可以选择 全部,方便您找出系统中资源使用率较高的 Pod。

容器监控

您可以查看指定命名空间下容器(Container)的监控信息,包括:Container 内存信息(内存使用量、内存使用率)、Container CPU 信息(CPU 使用量、CPU 使用率)等。支持设置查询的时间段,并指定刷新方式(手动刷新、自动刷新)。

alt

说明

您可以查看单个 Container 的监控信息,也可以选择 全部,方便您找出 Pod 中资源使用率较高的 Container。

存储卷声明监控

您可以查看命名空间下所有或指定 PVC 的监控信息,包括:容量使用率和 inode 使用率。支持设置查询的时间段,并指定刷新方式(手动刷新、自动刷新)。

alt

指标清单

集群基础资源监控大盘的指标清单如下表所示。

说明

如果您需要在托管 Prometheus 中的 Explore 功能或告警中心使用上述 PromQL 语句查看具体的指标或配置告警,请修改或删除语句中关于集群、节点、容器组的变量。例如:将 cluster=~"$Cluster"参数中的$Cluster变量修改为具体的集群 ID ,或直接删除该参数。

大盘分类大盘名称指标单位PromQL 语句
集群监控节点数量Countcount(kube_node_info{cluster="$clusterId",kernel_version!=""})
未就绪节点数Countcount(kube_node_info{cluster="$clusterId",kernel_version!=""})-count(kube_node_status_condition{cluster="$clusterId",condition="Ready",condition="Ready",status="true",node!~"vci.*"} == 1)
容器组数量Countcount(kube_pod_info{cluster="$clusterId"})
集群内存用量Bytesum(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 用量Coresum (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)
节点监控节点内存用量Bytenode_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 用量Coresum (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/sirate(node_disk_read_bytes_total{cluster=~"$clusterId",instance=~"$node",device=~"[a-z]*[a-z]"}[5m])
磁盘写流量Byte/sirate(node_disk_written_bytes_total{cluster=~"$clusterId",instance=~"$node",device=~"[a-z]*[a-z]"}[5m])
磁盘写 IOPSIOPSirate(node_disk_writes_completed_total{cluster=~"$clusterId",instance=~"$node",device=~"[a-z]*[a-z]"}[5m])
磁盘读 IOPSIOPSirate(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/sirate(node_network_receive_bytes_total{cluster=~"$clusterId",instance=~"$node"}[5m])
网络流出流量速率Byte/sirate(node_network_transmit_bytes_total{cluster=~"$clusterId",instance=~"$node"}[5m])
网络流入数据包数速率Packets/sirate(node_network_receive_packets_total{cluster=~"$clusterId",instance=~"$node"}[5m])
网络流出数据包速率Packets/sirate(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连接数Countnode_sockstat_TCP_inuse{cluster="$clusterId",instance="$node"}
容器组数量Countcount(kube_pod_info{cluster="$clusterId",node="$node"})by(node)
容器组监控容器组内存用量Bytesum(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 用量Coresum(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/ssum(avg(rate(container_network_receive_bytes_total{cluster=~"$clusterId",pod=~"$pod",namespace=~"$namespace"}[1m])) by (pod)) by (pod)
容器组网络流出流量速率Byte/ssum(avg(rate (container_network_transmit_bytes_total{cluster=~"$clusterId",pod=~"$pod",namespace=~"$namespace"}[1m])) by (pod))by (pod)
容器组网络流入数据包速率Packets/ssum(avg(rate (container_network_receive_packets_total{cluster=~"$clusterId",pod=~"$pod",namespace=~"$namespace"}[5m])) by (pod))by (pod)
容器组网络流出数据包速率Packets/ssum(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)
容器监控内存用量Bytecontainer_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 用量Corerate(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