如何理解GitLab延迟指标并匹配Grafana面板数据
GitLab Workhorse Latency 指标解析与计算方法
延迟桶数字的含义
gitlab_workhorse_http_request_duration_seconds_bucket是直方图类型的Prometheus指标,每个le标签对应「延迟小于等于该值」的累计请求数。比如le="10"代表所有延迟≤10秒的请求总数,le="30"代表所有延迟≤30秒的请求总数。- 面板上显示的「10s-30s桶有3个请求」,是通过当前桶数值减去上一级桶数值得到的:用
le="30"的累计数减去le="10"的累计数,结果就是延迟落在(10s, 30s]区间内的请求数量。 - 最后一个
le="+Inf"的桶,数值是所有请求的总数量。
匹配面板显示的计算方法
你当前的Prometheus查询得到的是1分钟内的每秒请求速率,而面板显示的是该时间窗口内的总请求数,需要做以下调整:
rate()函数的作用是计算计数器的每秒增长速率,处理指标的单调递增特性,得到单位时间内的请求增量。- 将速率乘以时间窗口的总秒数(1分钟=60秒),就能得到该窗口内的累计请求数,修改后的查询语句为:
sum by (le)(rate(gitlab_workhorse_http_request_duration_seconds_bucket{instance=~"localhost:9229"}[1m])) * 60 - 若要单独计算某个区间(比如10s-30s)的请求数,直接用
le="30"的结果减去le="10"的结果,就能和面板上的区间数值完全匹配。
内容的提问来源于stack exchange,提问作者FcoZ
相关产品推荐
相关产品推荐

