我是普罗米修斯的新手。我正在使用 NewCounterVec 来记录传入的 http 请求。我根据我在 git hub 上找到的许多其他人的代码使用了它。

假设这就是我的指标的定义方式(在进行中)

httpRequests = prometheus.NewCounterVec(
    prometheus.CounterOpts{
        Name: "http_requests_total",
        Help: "Incoming http requests.",
    },
    []string{"path", "status"},
)

path 传入的 url 路径和状态是 http 响应状态。
我的 promQL 查询(绘制图形)是什么
  • 每分钟的传入请求
  • 基于 http 状态的失败率
    代码(状态代码 >=400)

  • 我试过 rate(http_requests_total[5m])[30m:1m]基于 this ,但无法在图表上显示。它抛出错误 Error execution query: invalid expression type "range vector" for range query, must be Scalar or instant Vector

    最佳答案

    rate(http_requests_total[5m]) * 60 rate(http_requests_total{status=~"[45].."}[5m])然而,这很脆弱,如果没有 4xx 或 5xx 状态代码,则不会返回任何内容。

    关于go - PromQL 查询以绘制传入请求的速率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60272642/

    10-15 19:22