天天看点

prometheus监控kubernetes常用的指标

文章内使用的一些标签名 通过配置文件的metric_relabel_configs参数 重命名了,可以根据实际情况选择标签名

    - source_labels: [container_label_io_kubernetes_pod_name]

     separator: ;

     regex: (.+)

     target_label: pod_name

内存指标

统计k8s集群中所有容器的内存使用量 (cadvisor采集器)

​sum(container_memory_working_set_bytes{id="/", job="docker_node"})​

​container_memory_working_set_bytes​

​ 这个指标更能表达内存的使用情况,容器oom killer也是根据container_memory_working_set_bytes 来决定是否oom kill的

​​

​container_memory_usage_bytes​

​ 这个指标显示的内存 包括了container_memory_cache,不能准确的反映容器真实内存使用量

统计k8s集群总内存(cadvisor采集器)

​sum(machine_memory_bytes{job="docker_node"})​

k8s集群中统计每一个pod的内存使用量

​sum(container_memory_working_set_bytes{image!="",job="docker_node"}) by (pod_name)​

k8s集群中统计每一个进程的内存使用量

​sum(container_memory_working_set_bytes{id!="/",job="docker_node"}) by (id)​

k8s集群内存使用百分比(cadvisor采集器)

​sum(container_memory_working_set_bytes{id="/", job="docker_node"}) / sum(machine_memory_bytes{job="docker_node"}) * 100​

cpu指标

k8s集群所有容器cpu使用量(cadvisor采集器)

​sum(rate(container_cpu_usage_seconds_total{id="/", job="docker_node"}[1m]))​

k8s集群cpu总核数

​sum(machine_cpu_cores{job="docker_node"})​

k8s集群cpu使用百分比

​sum(rate(container_cpu_usage_seconds_total{id="/", job="docker_node"}[1m])) / sum(machine_cpu_cores{job="docker_node"}) * 100​

k8s集群统计每一个pod的cpu使用率

​sum(rate(container_cpu_usage_seconds_total{image!="",job="docker_node"}[1m])) by (pod_name)​

k8s集群统计每一个进程的cpu使用率

​sum(rate(container_cpu_usage_seconds_total{id!="/",job="docker_node"}[1m])) by (id)​

磁盘指标

k8s集群中所有磁盘的使用量

​sum(container_fs_usage_bytes{device=~"/dev/.*$", id="/", job="docker_node"})​

k8s集群中所有磁盘的总量

​sum(container_fs_limit_bytes{device=~"^/dev/.*$", id="/", job="docker_node"})​

k8s集群中所有磁盘的使用率

​sum(container_fs_usage_bytes{device=~"/dev/.*$", id="/", job="docker_node"}) / sum(container_fs_limit_bytes{device=~"^/dev/.*$", id="/", job="docker_node"}) * 100​

带宽指标

k8s集群中所有容器的网卡接收的流量

​sum(rate(container_network_receive_bytes_total{job="docker_node"}[1m]))​

k8s集群所有网卡接收的带宽(1分钟的平均带宽),包括节点和容器

​sum(rate(container_network_receive_bytes_total{job="docker_node"}[1m]))​

k8s集群所有网卡发送的带宽(1分钟的平均带宽),包括节点和容器

​sum(rate(container_network_transmit_bytes_total{job="docker_node"}[1m]))​

k8s集群中统计每一个pod 接收的带宽(1分钟平均带宽)

​sum(rate(container_network_receive_bytes_total{image!="", job="docker_node"}[1m])) by (pod_name)​

pod_name 是通过配置文件的metric_relabel_configs,自定义的标签名,可根据实际情况修改

k8s集群中统计每一个pod发送的带宽(1分钟平均带宽)

​sum(rate(container_network_transmit_bytes_total{image!="", job="docker_node"}[1m])) by (pod_name)​

k8s集群中统计每个进程接收的带宽(1分钟平均带宽)

​sum(rate(container_network_receive_bytes_total{id!="/", job="docker_node"}[1m])) by (id)​

k8s集群中统计每个进程发送的带宽(1分钟平均带宽)

​sum(rate(container_network_transmit_bytes_total{id!="/", job="docker_node"}[1m])) by (id)​