PromQL 查询以绘制传入请求的速率
Posted
技术标签:
【中文标题】PromQL 查询以绘制传入请求的速率【英文标题】:PromQL query to graph the rate of incoming requests 【发布时间】:2020-06-01 23:41:22 【问题描述】:我是普罗米修斯的新手。我正在使用 NewCounterVec 来记录传入的 http 请求。我根据我在 git hub 上找到的许多其他人的代码使用了它。
假设这是我的指标的定义方式(在运行中)
httpRequests = prometheus.NewCounterVec(
prometheus.CounterOpts
Name: "http_requests_total",
Help: "Incoming http requests.",
,
[]string"path", "status",
)
path 传入的url路径,status为http响应状态。 我的 promQL 查询(绘制图表)将是什么
-
每分钟的传入请求数
基于 http 状态的失败率
代码(状态代码 >=400)
我试过rate(http_requests_total[5m])[30m:1m]
基于this,但无法在图表上显示。它抛出一个错误执行查询错误:invalid expression type "range vector" for range query, must be Scalar or instant Vector
【问题讨论】:
【参考方案1】:每分钟收到的请求数
rate(http_requests_total[5m]) * 60
基于http状态码的失败率(状态码>=400)
rate(http_requests_totalstatus=~"[45].."[5m])
然而,这很脆弱,如果没有 4xx 或 5xx 状态代码,则不会返回任何内容。
【讨论】:
必须是这样的rate(http_requests_totalstatus=~"[45].."[5m])
和~
。以上是关于PromQL 查询以绘制传入请求的速率的主要内容,如果未能解决你的问题,请参考以下文章
针对事件(审核日志)查询 Azure Insights REST API 的速率限制策略