Prometheus 指标类型详解

Prometheus 指标类型详解

在 Prometheus 生态系统中,指标(Metrics)是最基础的数据类型。理解不同类型的指标及其适用场景,对于构建有效的监控系统至关重要。本文将详细介绍 Prometheus 的四种核心指标类型。

Counter(计数器)​

定义​

Counter 是一个只增不减的累计指标。它的值只能增加或在重启时重置为零。

特点​

单调递增

只能增加或重置为零

常用于计数场景

使用场景​

# 常见的 Counter 指标http_requests_total # HTTP 请求总数node_network_receive_bytes # 网络接收字节数errors_total # 错误总数

最佳实践​

# 计算速率(每秒请求数)rate(http_requests_total[5m])# 计算一段时间内的增量increase(http_requests_total[1h])

Gauge(仪表盘)​

定义​

Gauge 是可以任意上下波动的指标,可增可减。

特点​

可增可减

反映瞬时状态

适合记录当前状态

使用场景​

# 常见的 Gauge 指标node_memory_MemAvailable_bytes # 可用内存node_cpu_usage_percent # CPU 使用率temperature_celsius # 温度

最佳实践​

# 直接使用当前值node_memory_MemAvailable_bytes# 计算变化率delta(temperature_celsius[1h])

Histogram(直方图)​

定义​

Histogram 对观察值进行采样,并将其计入可配置的桶(bucket)中,同时提供所有观察值的总和。

特点​

包含多个桶计数

自动计算总和和样本数

支持分位数计算

组成部分​

# 一个 Histogram 指标会自动生成以下数据:_bucket{le=""} # 桶计数_sum # 所有观察值的总和_count # 观察值的总数

使用场景​

# HTTP 请求延迟分布http_request_duration_seconds_bucket{le="0.1"} # 100ms 内的请求数http_request_duration_seconds_sum # 总延迟时间http_request_duration_seconds_count # 总请求数# 计算 P90 延迟histogram_quantile(0.9, rate(http_request_duration_seconds_bucket[5m]))

Summary(摘要)​

定义​

Summary 类似于 Histogram,但它直接在客户端计算分位数。

特点​

客户端计算分位数

提供总和和计数

配置固定的分位数

组成部分​

# 一个 Summary 指标会自动生成:{quantile="<φ>"} # φ-分位数值_sum # 所有观察值的总和_count # 观察值的总数

使用场景​

# 应用响应时间http_request_duration_seconds{quantile="0.95"} # P95 延迟http_request_duration_seconds_sum # 总延迟http_request_duration_seconds_count # 总请求数

指标类型选择建议​

Counter 适用于:

请求计数

错误计数

任务完成数

Gauge 适用于:

内存使用量

温度

当前并发连接数

Histogram 适用于:

请求延迟

响应大小

需要计算分位数的场景

Summary 适用于:

需要精确分位数的场景

客户端计算分位数的场景

最佳实践​

1. 命名规范​

# 好的命名示例http_requests_totalhttp_request_duration_secondsnode_memory_usage_bytes

2. 标签使用​

# 合理使用标签http_requests_total{method="GET", status="200", path="/api/v1/users"}

3. 单位规范​

使用基本单位(秒、字节等)

在指标名称中包含单位信息

总结​

选择合适的指标类型对于构建有效的监控系统至关重要:

Counter 适合累计型数据

Gauge 适合状态型数据

Histogram 适合需要分析分布的数据

Summary 适合需要客户端计算分位数的场景

理解这些指标类型的特点和使用场景,可以帮助我们更好地设计监控系统。

参考资料​

Prometheus 指标类型文档

Prometheus 最佳实践

Histogram vs Summary

相关文章