监控指标的直方图、SLO 及成本控制
在监控系统中,指标通常以聚合形式呈现。单个时间测量值不会直接发送到监控系统,否则指标成本将随吞吐量变化而不固定。为解决这一问题,我们可以使用直方图来近似表示这些单个时间测量值的分布情况。
直方图
直方图的基本原理
直方图将可能的时间范围划分为一系列连续且不重叠的桶(bucket),每个桶记录落入该范围的单个时间测量值的数量。桶的大小通常不相等,因为我们往往更关注某些特定范围内的细节。例如,对于 API 端点的延迟直方图,我们更关心 1ms、10ms 和 100ms 延迟之间的区别,而不是 40s 和 41s 延迟的区别。因此,在预期值附近的延迟桶会更精细。
通过将所有单个时间测量值累积到桶中,并控制桶的数量,我们可以在保持固定成本的同时保留分布的形状。
直方图在监控系统中的存储
在监控系统的存储中,直方图表示为一系列计数器。以 Prometheus 为例,这些计数器有一个特殊的标签 le ,表示该指标是小于或等于标签值(以秒为单位)的所有样本的计数。以下是一个示例表格:
| Metric name | Values |
| — | — |
| http_server_requests_seconds_bucket{status=200,le=0.1} | [10,10,12,15] |
| http_server_requests_seconds_bucket{status=200,le=0.2} | [20,20,24,26] |
| http_server_requests_seconds_b
超级会员免费看
订阅专栏 解锁全文
749

被折叠的 条评论
为什么被折叠?



