只会一点java

java持续学习者,每月一篇博客。罗列出技术栈,慢慢完善,持续学习,总有一天,你会追上甚至超越曾经的大神。
  博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

Rancher监控指标一文干到底(workload metrics)

Posted on 2021-08-04 15:58  只会一点java  阅读(2351)  评论(0编辑  收藏  举报

一、工作负载指标

直接截取一个生产环境的rancher的web管理端-工作负载指标模块的图(这里没有汉化,直接英文)如下:

共5个大指标:

  1. CPU使用
  2. 内存使用
  3. 网络包
  4. 网络IO
  5. 磁盘IO

自学入口

1)rancher官网:工作负载指标表达式

2)prometheus表达式描述

二、细节

2.1 CPU使用

2个节点(jdn22、zt4lb),每个节点(4核即4个CPU 4G内存)都有4个CPU指标:

注:1个核心CPU=1000毫核 milli cpu

cfs throttled:cfs 是完全公平调度器(Completely Fair Scheduler)的缩写,是Linux的一种控制CPU资源占用的机制,可以按指定比例分配调度CPU 的使用时间。这个指标指的是该容器服务被限制使用的CPU时间(饱和度)

system seconds:该容器服务累计消耗的系统(system)CPU时间。2 mcpu

user seconds:该容器服务累计消耗的用户(user)CPU时间。14 mCpu

usage该容器服务累计消耗的总使用CPU时间usage=system+user=14+2=16mCpu  16毫核/4核心*1000毫核=0.4%

官方描述:

注意:我们就看一个表达式:

sum(rate(container_cpu_usage_seconds_total{namespace="$namespace",pod_name=~"$podName",container_name!=""}[5m])) by (pod_name)

rate(container_cpu_usage_seconds_total{namespace="$namespace",pod_name=~"$podName",container_name!=""}[5m]):   5分钟内,每秒平均CPU使用率。

sum() by (pod_name):每个pod节点分别求和(多核心CPU)

 

函数参考prometheus文档验证表达式,截图如下:

 2.2 内存使用

如上图,2个节点,每个内存都稳定在717MB。

官方描述:

 

container_memory_working_set_bytes:当前内存工作集(working set)使用量,单位byte。

2.3 网络数据包

如上图,2个pod节点,每个节点有6个指标。以jdn22做数据分析:

接收3个:

receive dropped(饱和度)sum(rate(container_network_receive_packets_dropped_total{namespace="$namespace",pod_name=~"$podName",container_name!=""}[5m])) by (pod_name) :指定pod, 容器网络每秒接收丢包总数 0.03 Pactets Per Second (简称pps)

receive errorssum(rate(container_network_receive_errors_total{namespace="$namespace",pod_name=~"$podName",container_name!=""}[5m])) by (pod_name):指定pod, 容器网络每秒接收失败包总数 0 pps

receive packetssum(rate(container_network_receive_packets_total{namespace="$namespace",pod_name=~"$podName",container_name!=""}[5m])) by (pod_name) : 指定pod, 容器网络每秒接收包总数 3 pps

发送3个:

Transmit droped(饱和度):指定pod, 容器网络,每秒传输丢包总数 0 pps

Transmit errors:指定pod, 容器网络,每秒传输包失败总数 0 pps

Transmit packets:指定pod, 容器网络,每秒传输包总数 5 pps

 

官方描述:

2.4  网络IO

如上图,2个pod节点,以jdn22做数据分析:

Recive: sum(rate(container_network_receive_bytes_total{namespace="$namespace",pod_name=~"$podName",container_name!=""}[5m])) by (pod_name):指定pod,容器网络每秒接收字节总数:0.72kb per-second(简称kbps)

transmit:sum(rate(container_network_transmit_bytes_total{namespace="$namespace",pod_name=~"$podName",container_name!=""}[5m])) by (pod_name): 指定pod,容器网络每秒传输字节总数:1.27 kbps

官方描述:

 

 2.5 磁盘IO

 

 如上图,2个pod节点,以jdn22做数据分析:

Read:sum(rate(container_fs_reads_bytes_total{namespace="$namespace",pod_name=~"$podName",container_name!=""}[5m])) by (pod_name) 指定pod,容器磁盘每秒读字节总数:0 kbps

Write:sum(rate(container_fs_writes_bytes_total{namespace="$namespace",pod_name=~"$podName",container_name!=""}[5m])) by (pod_name)指定pod,容器磁盘每秒写字节总数:0 kbps

官方描述: