文章目录Prometheus 常见监控指标详解一、Prometheus 指标模型二、四大核心指标类型1. Counter计数器2. Gauge仪表盘3. Histogram直方图4. Summary摘要三、常见系统级监控指标1. CPU 指标2. 内存指标3. 磁盘指标4. 网络指标四、Kubernetes 常见指标1. Pod 资源使用2. Pod 状态3. Deployment 状态4. 容器重启次数五、应用层指标业务监控1. HTTP 指标2. 错误率3. QPS每秒请求数4. 延迟指标六、常见监控指标设计建议1. 标签设计要合理2. 命名规范3. 指标要有业务意义4. 四大黄金信号Golden Signals七、总结1️⃣ 系统层2️⃣ 平台层K8s3️⃣ 业务层Prometheus 常见监控指标详解在现代云原生体系中Prometheus 已成为事实标准的监控系统之一。它通过拉取Pull方式采集指标Metrics并配合告警系统实现对系统运行状态的实时观测。理解 Prometheus 的指标类型和常见指标是做好可观测性的第一步。一、Prometheus 指标模型Prometheus 的核心数据模型是时间序列Time Series每条数据由以下组成指标名Metric Name标签Labels时间戳Timestamp数值Value例如http_requests_total{methodGET, status200} 1024 表示GET 请求返回 200 的次数为 1024注意时间戳始终存在只是在/metrics文本格式输出中通常不显示当 Prometheus 服务器抓取这个指标时会自动记录抓取时刻的时间戳存储到时间序列数据库中。二、四大核心指标类型Prometheus 定义了四种基础指标类型1. Counter计数器特点单调递增只增不减重启后归零适用场景请求总数错误总数任务完成次数示例http_requests_total常用函数rate()计算每秒增长率increase()一段时间内增长量 示例rate(http_requests_total[5m])2. Gauge仪表盘特点可增可减表示瞬时值适用场景CPU 使用率内存使用量当前连接数示例node_memory_MemAvailable_bytes3. Histogram直方图特点统计分布情况自动分桶bucket适用场景请求延迟响应时间指标结构一个 Histogram 实际包含三类指标_bucket_sum_count示例http_request_duration_seconds_bucket http_request_duration_seconds_sum http_request_duration_seconds_count 常用于计算 P95 / P99histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m]))4. Summary摘要特点直接计算分位数quantile客户端计算适用场景延迟分析轻量级示例http_request_duration_seconds{quantile0.95}⚠️ 与 Histogram 区别类型分位数计算聚合能力Histogram服务端强Summary客户端弱 一般推荐使用 Histogram更适合分布式系统三、常见系统级监控指标结合 Node Exporter / K8s 场景以下指标最常用1. CPU 指标node_cpu_seconds_total CPU 使用率计算100 - (avg by(instance)(rate(node_cpu_seconds_total{modeidle}[5m])) * 100)2. 内存指标node_memory_MemTotal_bytes node_memory_MemAvailable_bytes 内存使用率(1 - (MemAvailable / MemTotal)) * 1003. 磁盘指标node_filesystem_size_bytes node_filesystem_avail_bytes 磁盘使用率(1 - avail / size) * 1004. 网络指标node_network_receive_bytes_total node_network_transmit_bytes_total 网络吞吐量rate(node_network_receive_bytes_total[5m])四、Kubernetes 常见指标在 Kubernetes 环境中常见指标包括1. Pod 资源使用container_cpu_usage_seconds_total container_memory_usage_bytes2. Pod 状态kube_pod_status_phase3. Deployment 状态kube_deployment_status_replicas kube_deployment_status_replicas_available4. 容器重启次数kube_pod_container_status_restarts_total 用于检测异常 CrashLoop五、应用层指标业务监控应用指标通常通过 SDK 或中间件暴露1. HTTP 指标http_requests_total http_request_duration_seconds 可按标签细分methodGET/POSTstatus200/500pathAPI 路径2. 错误率rate(http_requests_total{status~5..}[5m])3. QPS每秒请求数sum(rate(http_requests_total[1m]))4. 延迟指标P50中位数P95尾延迟P99极端情况六、常见监控指标设计建议1. 标签设计要合理避免user_id123456 会导致高基数问题High Cardinality2. 命名规范Prometheus 指标命名建议namespace_subsystem_metric_unit例如http_request_duration_seconds3. 指标要有业务意义不要只监控系统资源还要关注成功率延迟用户行为4. 四大黄金信号Golden Signals由 Google SRE 提出延迟Latency流量Traffic错误Errors饱和度Saturation七、总结Prometheus 的监控体系可以分为三层1️⃣ 系统层CPU / 内存 / 磁盘 / 网络2️⃣ 平台层K8sPod / Deployment / 容器状态3️⃣ 业务层QPS / 错误率 / 延迟 真正有效的监控不是指标多而是能发现问题能定位问题能驱动告警和决策