暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Prometheus中直方图和摘要有什么不同

运维笔谈 2024-02-27
168

我们知道prometheus 中的直方图(Histogram)和摘要(Summary)都是用于度量事件或观测值的分布情况,特别是对于有范围的数据,如请求响应时间、任务执行时长等。它们之间的主要区别在于存储方式、计算细节以及灵活性:

1. 直方图(Histogram)

- 直方图将观测值分布划分成多个预定义的区间(bucket),每个bucket记录落入该区间的观测值数量。
- Prometheus中的直方图还会额外提供一个累计计数器,表示所有观测值的数量,以及一个累计总和,可以用来计算平均值(不过不是直接存储平均值)。
- Bucket的设计在客户端配置时预先设定,例如,可以设置一系列上限值来跟踪不同响应时间范围内的请求数量。
- 直方图会为每个bucket生成一个时间序列,并且还包含一个`_count`和`_sum`的附加指标。

2. 摘要(Summary)

- 摘要不仅记录了观测值的分位数(quantiles),也允许用户查询任意百分位数的数据,比如P50(中位数)、P95、P99等,提供了更灵活的统计信息。
- 摘要同样不直接存储平均值,但在查询时可以根据需要计算出来。
- 与直方图相比,摘要不需要预先指定bucket边界,它内部实现了一种高效的方式来估算分位数,这使得其能更好地适应数据的变化和需求。

如果关心的是固定区间内的统计数据或者想直观地了解观测值落在各个区间的情况,那么直方图是一个好选择。而如果我们需要更加精细的百分比分布信息,或者希望根据需要自定义百分位点进行查询分析,则应使用摘要类型。

文章转载自运维笔谈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论