Kubernetes 系列 | 容器监控之那些丢失的指标

前言

当把 k8s 升级到 高版本后,发现监控中有些指标都是空值,例如container_fs_usage_bytes和container_fs_limit_bytes无Pod label(其他container_fs可能也无)、container_network_tcp/udp 等都为0。

在这里插入图片描述
在这里插入图片描述

原因

一、container_fs是已知的cadivsor/kubelet没有完全适配containerd的问题,最新的cadvisor代码,对接containerd fs这块还没实现。

二、 container_network_{tcp,udp}不采集是因为 cadvisor中默认给关掉了网络等相关指标的收集–disable_metrics=tcp, udp 。
https://github.com/google/cadvisor/blob/master/docs/runtime_options.md#metrics

结论

一、在k8s场景,一般针对无状态服务,不太需要考虑磁盘占用,关注磁盘io container_fs_reads相关指标即可,针对有状态,如果有pv,关注一下pv的占用率(kubelet_volume相关指标)

二、kubelet内置的cadvisor组件收集每个容器资源监控信息,但官方基于性能相关的考虑,如果抓取这些每个容器中网络相关的指标,将会耗费大量的CPU内存资源。可以直接使用ss命令来获取每个容器网络空间的网络状态,直接读取/proc/{pid}/net/sockstat文件
sockstat文件信息:

sockets: used 141118
TCP: inuse 89 orphan 96 tw 7181 alloc 21341 mem 13896
UDP: inuse 3 mem 116
UDPLITE: inuse 0
RAW: inuse 0
FRAG: inuse 0 memory 0

TCP inuse是的值是取自tcp4_hashed+tcp6_hashed,是正在使用的TCP套接字的数量,而不是establish状态的tcp连接,establish状态的tcp连接状态需要从/proc/net/snmp文件中获取,读取CurrEstab字段。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值