http_request_duration_seconds_sum / http_request_duration_seconds_count 显示 2 个图表
Posted
技术标签:
【中文标题】http_request_duration_seconds_sum / http_request_duration_seconds_count 显示 2 个图表【英文标题】:http_request_duration_seconds_sum / http_request_duration_seconds_count shows 2 graphs 【发布时间】:2020-03-02 15:27:52 【问题描述】:我有一个 Grafana 仪表板,我尝试在其中绘制一些 prometheus 指标。
我正在尝试使用以下公式计算 2 个端点的平均响应时间:
http_request_duration_seconds_sum / http_request_duration_seconds_count
但是在将查询绘制到 Grafana 图形面板时,我得到 4 个图形(每个 2 个)而不是只有 2 个,我不明白。
谁能告诉我,为什么有 4 条曲线而不是 2 条曲线? 顶部的两个来自同一个查询,底部的两个也是如此。
更新
正在添加
sum(rate(http_request_duration_sum))[24h] / sum(rate(http_request_duration_count))[24h]
答案?这给了我 2 条曲线而不是 4 条,但不确定结果是否是我正在寻找的结果(即端点的平均响应时间)。
【问题讨论】:
Prometheus 中默认有 http_request_duration_sum 指标吗?如果没有,哪个出口商提供? 【参考方案1】:我发现以下查询:
sum(rate(http_request_duration_sum))[24h] / sum(rate(http_request_duration_count))[24h]
是我正在寻找的答案,以秒为单位提供平均响应时间,并且只有 1 条曲线公关查询。
当然scrape_interval不应该是 24 小时,所以我将它设置为 [1m]。 SO-answer
【讨论】:
sum(irate(http_request_duration_sumservice=~"$service"[2m])) by (service) / sum(irate(http_request_duration_countservice=~"$service"[2m]) ) by (服务) 只粘贴一个用于生产的 感谢随文峰。是的,它是一样的,但使用 irate 而不是 rate。在我的情况下,我可能会按(实例)排序,但它仍然给出相同的输出。【参考方案2】:是的,来自 prometheus 的那些指标是计数器。所以,你应该添加率/愤怒。将 irate 用于不稳定和快速变化的指标
【讨论】:
以上是关于http_request_duration_seconds_sum / http_request_duration_seconds_count 显示 2 个图表的主要内容,如果未能解决你的问题,请参考以下文章