一、工作負載指標

直接擷取一個生產環境的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

官方描述: