理解指标类型

次元: 日博365规模好大 时间戳: 2025-08-31 17:43:31 观察者: admin 访问量: 3402 能量值: 315
理解指标类型

Prometheus 支持四种指标类型

计数器 (Counter)

仪表盘 (Gauge)

直方图

摘要

计数器 (Counter)

计数器是一种指标值,它只能递增或重置,即其值不能小于前一个值。它可以用于表示请求数量、错误数量等指标。

在查询栏中输入以下查询并点击执行。

go_gc_duration_seconds_count

PromQL 中的 `rate()` 函数会获取指标在一段时间范围内的历史数据,并计算该值每秒的增长速度。`rate` 仅适用于计数器值。

rate(go_gc_duration_seconds_count[5m])

仪表盘 (Gauge)

仪表盘 (Gauge) 是一个可升可降的数值。它可以用于表示集群中的 Pod 数量、队列中的事件数量等指标。

go_memstats_heap_alloc_bytes

PromQL 函数,如 `max_over_time`、`min_over_time` 和 `avg_over_time` 可用于仪表盘指标。

直方图 (Histogram)

直方图是比前两种更复杂的指标类型。直方图可用于根据桶值计数的任何计算值。桶边界可由开发者配置。一个常见的例子是响应请求所需的时间,称为延迟。

示例:假设我们要观察处理 API 请求所需的时间。直方图允许我们将请求时间存储在桶中,而不是为每个请求存储请求时间。我们为所需时间定义桶,例如 `小于或等于 0.3`、`le 0.5`、`le 0.7`、`le 1` 和 `le 1.2`。这些就是我们的桶,一旦请求所需时间被计算出来,它就会被添加到所有桶的计数中,这些桶的边界都高于测量值。

假设端点“/ping”的请求 1 耗时 0.25 秒。桶的计数将是。

/ping

桶计数0 - 0.310 - 0.510 - 0.710 - 110 - 1.210 - +Inf1

注意:+Inf 桶是默认添加的。

(由于直方图是累积频率,1 会被添加到所有大于该值的桶中)

端点“/ping”的请求 2 耗时 0.4 秒。桶的计数将是这样。

/ping

桶计数0 - 0.310 - 0.520 - 0.720 - 120 - 1.220 - +Inf2

由于 0.4 小于 0.5,因此直到该边界的所有桶都会增加其计数。

让我们从 Prometheus UI 中探索一个直方图指标并应用一些函数。

prometheus_http_request_duration_seconds_bucket{handler="/graph"}

`histogram_quantile()` 函数可用于从直方图中计算分位数。

histogram_quantile(0.9,prometheus_http_request_duration_seconds_bucket{handler="/graph"})

图表显示第 90 百分位数是 0.09。要查找过去 5 分钟的 histogram_quantile,可以使用 `rate()` 和时间范围。

histogram_quantile(0.9, rate(prometheus_http_request_duration_seconds_bucket{handler="/graph"}[5m]))

摘要 (Summary)

摘要也用于测量事件,是直方图的替代品。它们成本更低,但会丢失更多数据。它们是在应用层面计算的,因此无法聚合来自同一进程的多个实例的指标。当指标的桶事先未知时使用它们,但只要可能,强烈建议使用直方图而不是摘要。

在本教程中,我们详细介绍了指标类型以及 `rate`、`histogram_quantile` 等 PromQL 操作。

相关维度

Win电源选项设置效果及意义(个人整理)(包含:电源设置,开启卓越模式,睡眠休眠的区别)

Win电源选项设置效果及意义(个人整理)(包含:电源设置,开启卓越模式,睡眠休眠的区别)

dnf领主之塔攻略

dnf领主之塔攻略

手机怎么录屏?实用技巧,轻松录制!

手机怎么录屏?实用技巧,轻松录制!

光明大陆青铜矿和真铁矿大位置地点图片攻略

光明大陆青铜矿和真铁矿大位置地点图片攻略