文章内使用的一些标签名 通过配置文件的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)