内容来源于:
https://blog.csdn.net/god_86/article/details/120052285
https://zhuanlan.zhihu.com/p/342823695
分类(16个模块 ):
cpu、 mem、 filesystem && disk.io、 network、 system、 kube-apiserver metrics、 etcd metrics、 kube-scheduler、 coredns、 pod metrics、 deployment metrics、 daemonSet metrics、 Job metrics、 CronJob metricsPersistentVolume metrics、 PersistentVolumeClaim metrics、 node metrics
cadvisor指标
container_fs_write_seconds_total{}
container_memory_swap{}
container_spec_cpu_shares{}
container_ulimits_soft{}
container_fs_io_current{}
container_fs_reads_bytes_total{}
container_fs_writes_merged_total{}
container_cpu_user_seconds_total{}
container_memory_failcnt{}
container_memory_failures_total{}
container_cpu_cfs_throttled_seconds_total{}
container_cpu_usage_seconds_total{}
container_fs_io_time_seconds_total{}
container_network_receive_packets_total{}
container_spec_memory_reservation_limit_bytes{}
cadvisor_version_info{}
container_cpu_cfs_periods_total{}
container_fs_limit_bytes{}
container_fs_sector_writes_total{}
container_memory_usage_bytes{}
container_memory_working_set_bytes{}
container_network_receive_errors_total{}
container_network_transmit_packets_dropped_total{}
container_spec_cpu_period{}
container_file_descriptors{}
container_fs_inodes_total{}
container_fs_usage_bytes{}
container_network_transmit_packets_total{}
container_cpu_load_average_10s{}
container_fs_writes_bytes_total{}
container_memory_cache{}
container_spec_cpu_quota{}
container_cpu_cfs_throttled_periods_total{}
container_network_receive_bytes_total{}
container_network_transmit_errors_total{}
container_sockets{}
container_spec_memory_swap_limit_bytes{}
container_threads{}
container_threads_max{}
container_cpu_system_seconds_total{}
container_fs_read_seconds_total{}
container_fs_reads_merged_total{}
container_fs_sector_reads_total{}
container_processes{}
container_spec_memory_limit_bytes{}
container_fs_inodes_free{}
container_network_receive_packets_dropped_total{}
container_network_transmit_bytes_total{}
container_fs_io_time_weighted_seconds_total{}
container_fs_reads_total{}
container_fs_writes_total{}
container_memory_max_usage_bytes{}
container_memory_rss{}
container_scrape_error{}
container_start_time_seconds{}
container_last_seen{}
container_memory_mapped_file{}
container_tasks_state{}
指标详解
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])) /
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指标
| 指标名 |含义| 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 | (单位:个)|
kube-apiserver metrics
| 指标名 | 类型|含义 | 说明
apiserver_request_total |counter| 请求总数sum_by使用|按状态码code分布 2xx 3xx 4xx 5xx 等,按动作verb分布 list get watch post delete等,按资源resource分布: pod node endpoint等|
apiserver_request_duration_seconds_sum |gauge| 请求延迟记录和|按动作verb分布 list get watch post delete等
按资源resource分布: pod node endpoint等|
apiserver_request_duration_seconds_count |gauge| 请求延迟记录数|计算平均延迟: apiserver_request_duration_seconds_sum/apiserver_request_duration_seconds_count |
apiserver_response_sizes_sum |counter| 请求响应大小记录和|
apiserver_response_sizes_count |counter| 请求响应大小记录数|
authentication_attempts |counter| 认证尝试数|
authentication_duration_seconds_sum |counter| 认证耗时记录和|
authentication_duration_seconds_count |counter| 认证耗时记录数|
apiserver_tls_handshake_errors_total |counter| tls握手失败计数|
apiserver_client_certificate_expiration_seconds_sum |gauge| 证书过期时间总数|
apiserver_client_certificate_expiration_seconds_count |gauge| 证书过期时间记录个数|
apiserver_client_certificate_expiration_seconds_bucket |gauge| 证书过期时间分布|
apiserver_current_inflight_requests |gauge| 该量保存了最后一个窗口中,正在处理的请求数量的高水位线|
apiserver_current_inqueue_requests |gauge|是一个表向量, 记录最近排队请求数量的高水位线|apiserver请求限流 |
apiserver_flowcontrol_current_executing_requests |gauge| 记录包含执行中(不在队列中等待)请求的瞬时数量| APF api的QOS APIPriorityAndFairness |
apiserver_flowcontrol_current_inqueue_requests |gauge| 记录包含排队中的(未执行)请求的瞬时数量|
workqueue_adds_total |counter| wq 入队数|
workqueue_retries_total |counter| wq retry数|
workqueue_longest_running_processor_seconds |gauge| wq中最长运行时间|
workqueue_queue_duration_seconds_sum |gauge| wq中等待延迟记录和|
workqueue_queue_duration_seconds_count |gauge| wq中等待延迟记录数|
workqueue_work_duration_seconds_sum |gauge| wq中处理延迟记录和|
workqueue_work_duration_seconds_count |gauge| wq中处理延迟记录数|
etcd metrics
| 指标名 | 类型|含义 | 说明|
etcd_db_total_size_in_bytes | gauge| db物理文件大小 |
etcd_object_counts | gauge| etcd对象按种类计数|
etcd_request_duration_seconds_sum | gauge| etcd请求延迟记录和|
etcd_request_duration_seconds_count | gauge| etcd请求延迟记录数|
kube-scheduler
| 指标名 | 类型|含义 | 说明|
scheduler_e2e_scheduling_duration_seconds_sum | gauge| 端到端调度延迟记录和 |
scheduler_e2e_scheduling_duration_seconds_count | gauge| 端到端调度延迟记录数 |
scheduler_pod_scheduling_duration_seconds_sum | gauge| 调度延迟记录和 | 分析次数|
scheduler_pod_scheduling_duration_seconds_count | gauge| 调度延迟记录数 |
scheduler_pending_pods | gauge| 调度队列pending pod数|
scheduler_queue_incoming_pods_total | counter| 进入调度队列pod数| |
scheduler_scheduling_algorithm_duration_seconds_sum | gauge| 调度算法延迟记录和|
scheduler_scheduling_algorithm_duration_seconds_count | gauge| 调度算法延迟记录数| |
scheduler_pod_scheduling_attempts_sum | gauge| 成功调度一个pod 的尝试次数记录和| |
scheduler_pod_scheduling_attempts_count | gauge| 成功调度一个pod 的尝试次数记录数|
coredns
| 指标名 | 类型|含义 | 说明|
coredns_dns_requests_total | counter| 解析请求数 | A记录 AAAA记录 other记录 |
coredns_dns_responses_total | counter| 解析响应数 | NOERROR NXDOMAIN REFUSED |
coredns_cache_entries | gauge| 缓存记录数 | 成功或失败 |
coredns_cache_hits_total | counter| 缓存命中数 | 成功或失败 |
coredns_cache_misses_total | counter| 缓存未命中数 | 成功或失败 |
coredns_dns_request_duration_seconds_sum | gauge| 解析延迟记录和 |
coredns_dns_request_duration_seconds_count | gauge| 解析延迟记录数 |
coredns_dns_response_size_bytes_sum | gauge| 解析响应大小记录和 |
coredns_dns_response_size_bytes_count | gauge| 解析响应大小记录数 |
kube-stats-metrics
pod metrics
| 指标名 | 类型|含义 |
kube_pod_status_phase | gauge |pod状态统计: Pending Succeeded Failed Running Unknown |
kube_pod_container_status_waiting | counter| pod处于waiting状态,值为1代表waiting |
kube_pod_container_status_waiting_reason |gauge|pod处于waiting状态原因:ContainerCreating、CrashLoopBackOff pod启动崩溃,再次启动然后再次崩溃、CreateContainerConfigError、ErrImagePull、ImagePullBackOff、CreateContainerError、InvalidImageName|
kube_pod_container_status_terminated | gauge| pod处于terminated状态,值为1代表terminated |
kube_pod_container_status_terminated_reason | gauge|pod处于terminated状态原因:OOMKilled、Completed、Error、ContainerCannotRun、DeadlineExceeded、Evicted|
kube_pod_container_status_restarts_total | counter| pod中的容器重启次数 |
kube_pod_container_resource_requests_cpu_cores | gauge| pod容器cpu limit|
kube_pod_container_resource_requests_memory_bytes | gauge| pod容器mem limit(单位:字节)|
deployment metrics
| 指标名 |类型| 含义 |
kube_deployment_status_replicas | gauge|dep中的pod num |
kube_deployment_status_replicas_available | gauge|dep中的 可用pod num |
kube_deployment_status_replicas_unavailable | gauge|dep中的 不可用pod num |
daemonSet metrics
| 指标名 |类型| 含义 |
kube_daemonset_status_number_available | gauge| ds 可用数|
kube_daemonset_status_number_unavailable | gauge| ds 不可用数|
kube_daemonset_status_number_ready | gauge| ds ready数|
kube_daemonset_status_number_misscheduled | gauge| 未经过调度运行ds的节点数|
kube_daemonset_status_current_number_scheduled | gauge|ds目前运行节点数 |
kube_daemonset_status_desired_number_scheduled | gauge|应该运行ds的节点数 |
kube_statefulset_status_replicas | gauge| ss副本总数|
kube_statefulset_status_replicas_current | gauge| ss当前副本数|
kube_statefulset_status_replicas_updated | gauge| ss已更新副本数|
kube_statefulset_replicas | gauge| ss目标副本数|
Job metrics
| 指标名 |类型| 含义 |
kube_job_status_active | gauge| job running pod数|
kube_job_status_succeeded | gauge| job 成功 pod数|
kube_job_status_failed | gauge| job 失败 pod数|
kube_job_complete | gauge| job 是否完成|
kube_job_failed | gauge| job 是否失败|
CronJob metrics
| 指标名 |类型| 含义 |
kube_cronjob_status_active | gauge| job running pod数|
kube_cronjob_spec_suspend | gauge| =1代表 job 被挂起|
kube_cronjob_next_schedule_time | gauge| job 下次调度时间|
kube_cronjob_status_last_schedule_time | gauge| job 下次调度时间|
PersistentVolume metrics
| 指标名 |类型| 含义 |
kube_persistentvolume_capacity_bytes | gauge| pv申请大小|
kube_persistentvolume_status_phase | gauge| pv状态:Pending、Available、Bound、Released、Failed|
PersistentVolumeClaim metrics
| 指标名 |类型| 含义 |
kube_persistentvolumeclaim_resource_requests_storage_bytes | gauge| pvc request大小|
kube_persistentvolumeclaim_status_phase | gauge| pvc状态:Lost、Bound、Pending |
node metrics
| 指标名 | 类型 |含义|
kube_node_status_condition | gauge | condition:NetworkUnavailable、MemoryPressure、DiskPressure、PIDPressure、Ready|
kube_node_status_allocatable_cpu_cores | gauge | 节点可以分配cpu核数|
kube_node_status_allocatable_memory_bytes | gauge | 节点可以分配内存总量(单位:字节)|
kube_node_spec_taint | gauge | 节点污点情况|
kube_node_status_capacity_memory_bytes | gauge | 节点内存总量(单位:字节)|
kube_node_status_capacity_cpu_cores | gauge | 节点cpu核数|
kube_node_status_capacity_pods | gauge | 节点可运行的pod总数|