Prometheus 指标汇总
环境信息
- Prometheus 2.44.0
- Grafana 9.5.2
- Kubernetes 1.24
Kubernetes 相关指标
Kubernetes 中部署并监控 Kubernetes 集群参考。配置 Prometheus 监控 Kubelet 之后可以采集到 Kubelet 监控指标。
配置 Prometheus 读取 cAdvisor 之后可以通过 cAdvisor 采集到容器相关的监控指标。
指标名称 | 类型 | 说明 | 示例 |
---|---|---|---|
kubelet_pod_start_duration_seconds_count |
Pod 启动的时间 | ||
kubelet_pod_start_duration_seconds_bucket |
Pod 启动的时间的延迟直方图数据 | kubelet_pod_start_duration_seconds_bucket{le="0.5"} |
|
kubelet_running_pods |
运行的 Pod 的数量 | ||
kubelet_running_containers |
运行的 Containers 的数量 | ||
kubelet_runtime_operations_errors_total |
Kubelet 和 CRI 交互产生的错误(类型) | ||
kubelet_started_containers_total |
Kubelet 启动的 Container 总数 | ||
kubelet_started_pods_total |
Kubelet 启动的 Pod 总数 | ||
kubelet_volume_stats_available_bytes |
PV Volume 可以使用的磁盘空间 | ||
kube_node_status_allocatable kube_node_status_capacity |
节点的可分配的 资源 数量 | kube_node_status_allocatable{resource="pods"} 节点可分配的 Pod 的数量 |
|
kubelet_started_pods_total |
Counter |
已启动的 Pod 数量 | |
container_cpu_usage_seconds_total |
Counter |
Container 使用的 CPU | |
container_memory_usage_bytes |
Gauge |
Pod 使用的内存 | container_memory_usage_bytes{namespace="default"} |
kube_pod_container_status_restarts_total |
Counter |
Pod 的重启次数 |
nginx-ingress-controller 相关指标
配置 Prometheus 监控 Ingress-Nginx-Controller 指标 后,Prometheus 可以读取到 Ingress-Nginx-Controller 暴露的监控指标。
Grafana 中配置使用 Ingress-Nginx-Controller 指标示例
指标名称 | 类型 | 说明 | 示例 |
---|---|---|---|
nginx_ingress_controller_requests |
Counter |
Ingress Nginx Controller 接收到的所有请求数,,包括各个状态码 | irate(nginx_ingress_controller_requests[2m]) - 请求速率 |
nginx_ingress_controller_nginx_process_connections |
连接数,包括各个状态码 | ||
nginx_ingress_controller_request_duration_seconds_sum |
请求持续时间的总和 请求持续时间是从请求进入 Ingress 控制器开始,到响应返回给客户端结束的整个时间 |
||
nginx_ingress_controller_request_duration_seconds_count |
请求持续时间的计数。 | 计算平均请求持续时间:平均请求持续时间 = 请求持续时间总和 / 请求持续时间计数 | |
nginx_ingress_controller_ingress_upstream_latency_seconds_sum |
upstream 占用时间的总和 upstream 占用时间是指请求从 Ingress 到达 upstream(backend)服务器的时间 |
||
nginx_ingress_controller_ingress_upstream_latency_seconds_count |
upstream 上游占用时间的计数 | 计算平均上游占用时间:平均上游占用时间 = 上游占用时间总和 / 上游占用时间计数。 |
node 相关指标
主机信息
包括 CPU 架构、内核版本、操作系统类型、主机名等,集中在指标 node_uname_info
中。
CPU
指标名称 | 类型 | 说明 | 示例 |
---|---|---|---|
node_cpu_seconds_total |
Counter |
CPU 使用时间 | node_cpu_seconds_total{mode="idle"} - CPU 空闲时间 |
统计节点 CPU 使用率
100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) |
Memory
指标名称 | 类型 | 说明 | 示例 |
---|---|---|---|
node_memory_MemTotal_bytes |
Gauge |
总的内存 | |
node_memory_MemFree_bytes |
Gauge |
空闲内存 | |
node_memory_Cached_bytes |
Gauge |
Cache 内存 | |
node_memory_Buffers_bytes |
Gauge |
Buffers 内存 |
统计节点的 内存使用率
(node_memory_MemTotal_bytes - node_memory_MemFree_bytes - node_memory_Cached_bytes - node_memory_Buffers_bytes) / node_memory_MemTotal_bytes * 100 |
Network
指标名称 | 类型 | 说明 | 示例 |
---|---|---|---|
node_network_receive_bytes_total |
Counter |
网卡接收的流量 | |
node_network_transmit_bytes_total |
Counter |
网卡发送的流量 |
网卡流量带宽
irate(node_network_receive_bytes_total{device!~"cni0|docker.*|flannel.*|veth.*|virbr.*|lo",kubernetes_io_hostname=~"$node"}[$prometheusTimeInterval]) |