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_total1m)) 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_total1m)) by( container) /( sum (container_spec_cpu_quota) by(container) /100000) * 100 0-100的范围
cpu.sys 容器cpu内核态使用占其申请的百分比 sum (rate (container_cpu_sys_seconds_total1m)) by( container) /( sum (container_spec_cpu_quota) by(container) /100000) * 100 0-100的范围
cpu.cores.occupy 容器cpu使用占用机器几个核 rate(container_cpu_usage_seconds_total1m) 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_total5m)) * 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压力大看这里
相关推荐
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS3 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
codeejun3 天前
每日一Go·MySQL-5、锁机制全解析
云原生·golang
赵文宇(温玉)3 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang3 天前
上传本地镜像到harbor中
docker·容器·持续部署
张洛闻Eren3 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
lbb 小魔仙3 天前
OpenClaw + cpolar 实战:远程 NAS、分享小游戏、RDP,再配置公网 AI 入口
数据库·人工智能·redis·oracle·prometheus
忆~遂愿3 天前
本地片库怎么在外面打开?Plex + cpolar 搭一套可远程访问的私人影音库
docker·容器
Thneonl3 天前
你的 Pod 为什么 Pending:调度器两阶段
后端·kubernetes
不吃香菜kkk、3 天前
CI/CD(GitOps)学习与部署手册
运维·云原生·容器·kubernetes·云计算·jenkins·argocd