16.2 k8s容器基础资源指标讲解

本节重点介绍 :

  • 指标分析
    • cpu指标
    • mem指标
    • filesystem && disk.io指标
    • network指标
    • system指标
  • container_network_{tcp,udp}_usage_total 默认不采集是因为 --disable_metrics=tcp, udp ,因为开启cpu压力大看这里

指标分析

cpu指标

夜莺指标名 含义 prometheus metrics或计算方式 说明
cpu.util 容器cpu使用占其申请的百分比 sum (rate (container_cpu_usage_seconds_total[1m])) by( container) /( sum (container_spec_cpu_quota) by(container) /100000) * 100 0-100的范围
cpu.idle 容器cpu空闲占其申请的百分比 100 - cpu.util 0-100的范围
cpu.user 容器cpu用户态使用占其申请的百分比 sum (rate (container_cpu_user_seconds_total[1m])) by( container) /( sum (container_spec_cpu_quota) by(container) /100000) * 100 0-100的范围
cpu.sys 容器cpu内核态使用占其申请的百分比 sum (rate (container_cpu_sys_seconds_total[1m])) by( container) /( sum (container_spec_cpu_quota) by(container) /100000) * 100 0-100的范围
cpu.cores.occupy 容器cpu使用占用机器几个核 rate(container_cpu_usage_seconds_total[1m]) 0到机器核数上限,结果为1就是占用1个核
cpu.spec.quota 容器的CPU配额 container_spec_cpu_quota 为容器指定的CPU个数*100000
cpu.throttled.util 容器CPU执行周期受到限制的百分比 sum by(container_name, pod_name, namespace) (increase(container_cpu_cfs_throttled_periods_total{container_name!=""}[5m])) /<br>sum by(container_name, pod_name, namespace) (increase(container_cpu_cfs_periods_total[5m])) * 100 0-100的范围
cpu.periods 容器生命周期中度过的cpu周期总数 counter型无需计算 使用rate/increase 查看
cpu.throttled.periods 容器生命周期中度过的受限的cpu周期总数 counter型无需计算 使用rate/increase 查看
cpu.throttled.time 容器被节流的总时间 ) counter型无需计算 单位(纳秒

mem指标

夜莺指标名 含义 prometheus metrics或计算方式 说明
mem.bytes.total 容器的内存限制 无需计算 单位byte 对应pod yaml中resources.limits.memory
mem.bytes.used 当前内存使用情况,包括所有内存,无论何时访问 container_memory_rss + container_memory_cache + kernel memory 单位byte
mem.bytes.used.percent 容器内存使用率 container_memory_usage_bytes/container_spec_memory_limit_bytes *100 范围0-100
mem.bytes.workingset 容器真实使用的内存量,也是limit限制时的 oom 判断依据 container_memory_max_usage_bytes > container_memory_usage_bytes >= container_memory_working_set_bytes > container_memory_rss 单位byte
mem.bytes.workingset.percent 容器真实使用的内存量百分比 container_memory_working_set_bytes/container_spec_memory_limit_bytes *100 范围0-100
mem.bytes.cached 容器cache内存量 container_memory_cache 单位byte
mem.bytes.rss 容器rss内存量 container_memory_rss 单位byte
mem.bytes.swap 容器cache内存量 container_memory_swap 单位byte

filesystem && disk.io指标

夜莺指标名 含义 prometheus metrics或计算方式 说明
disk.bytes.total 容器可以使用的文件系统总量 container_fs_limit_bytes (单位:字节)
disk.bytes.used 容器已经使用的文件系统总量 container_fs_usage_bytes (单位:字节)
disk.bytes.used.percent 容器文件系统使用百分比 container_fs_usage_bytes/container_fs_limit_bytes *100 范围0-100
disk.io.read.bytes 容器io.read qps rate(container_fs_reads_bytes_total)[1m] (单位:bps)
disk.io.write.bytes 容器io.write qps rate(container_fs_write_bytes_total)[1m] (单位:bps)

network指标

网卡指标都应该求所有interface的和计算
夜莺指标名 含义 prometheus metrics或计算方式 说明
net.in.bytes 容器网络接收数据总数 rate(container_network_receive_bytes_total)[1m] (单位:bytes/s)
net.out.bytes 容器网络积传输数据总数) rate(container_network_transmit_bytes_total)[1m] (单位:bytes/s)
net.in.pps 容器网络接收数据包pps rate(container_network_receive_packets_total)[1m] (单位:p/s)
net.out.pps 容器网络发送数据包pps rate(container_network_transmit_packets_total)[1m] (单位:p/s)
net.in.errs 容器网络接收数据错误数 rate(container_network_receive_errors_total)[1m] (单位:bytes/s)
net.out.errs 容器网络发送数据错误数 rate(container_network_transmit_errors_total)[1m] (单位:bytes/s)
net.in.dropped 容器网络接收数据包drop pps rate(container_network_receive_packets_dropped_total)[1m] (单位:p/s)
net.out.dropped 容器网络发送数据包drop pps rate(container_network_transmit_packets_dropped_total)[1m] (单位:p/s)
container_network_{tcp,udp}_usage_total 默认不采集是因为 --disable_metrics=tcp, udp ,因为开启cpu压力大 看这里

system指标

夜莺指标名 含义 prometheus metrics或计算方式 说明
sys.ps.process.count 容器中running进程个数 container_processes (单位:个)
sys.ps.thread.count 容器中进程running线程个数 container_threads (单位:个)
sys.fd.count.used 容器中打开文件描述符个数 container_file_descriptors (单位:个)
sys.fd.soft.ulimits 容器中root process Soft ulimit container_ulimits_soft (单位:个)
sys.socket.count.used 容器中打开套接字个数 container_sockets (单位:个)
sys.task.state 容器中task 状态分布 container_tasks_state (单位:个)

本节重点总结:

  • 指标分析
    • cpu指标
    • mem指标
    • filesystem && disk.io指标
    • network指标
    • system指标
  • container_network_{tcp,udp}_usage_total 默认不采集是因为 --disable_metrics=tcp, udp ,因为开启cpu压力大看这里
相关推荐
AKAMAI5 小时前
利用DataStream和TrafficPeak实现大数据可观察性
人工智能·云原生·云计算
Johny_Zhao6 小时前
CentOS Stream 9上部署FTP应用服务的两种方法(传统安装和docker-compose)
linux·网络安全·信息安全·kubernetes·云计算·containerd·ftp·yum源·系统运维
鼠鼠我捏,要死了捏7 小时前
多租户Kubernetes集群架构设计实践——隔离、安全与弹性扩缩容
kubernetes·architecture·multi-tenancy
ldj20208 小时前
docker 自定义网桥作用
docker·容器
java叶新东老师8 小时前
k8s常用命令
云原生·容器·kubernetes
阿里云云原生8 小时前
阿里云正式开源 LoongSuite:打造 AI 时代的高性能低成本可观测采集套件
云原生
阿里云云原生9 小时前
从一起知名线上故障,谈配置灰度发布的重要性
云原生
liux352811 小时前
从零构建:Jenkins与Kubernetes集成的完整指南
java·kubernetes·jenkins
岚天start13 小时前
在K8S环境中,telnet nodePort端口是通的,但是 ss 获取不到端口号原因解析
iptables·kubernetes·k8s·telnet·ss
GEM的左耳返14 小时前
Java面试实战:从基础到架构的全方位技术交锋
spring boot·微服务·云原生·java面试·技术解析·ai集成