Go PromQL查询以图形化传入请求的速率

Go PromQL查询以图形化传入请求的速率,go,prometheus,promql,Go,Prometheus,Promql,我是普罗米修斯的新手。我正在使用NewCounterVec记录传入的http请求。我是根据我在git hub上找到的许多其他人的代码来使用它的 假设我的度量是这样定义的(在go中) 路径传入url路径和状态为http响应状态。 我的promQL查询(绘制图表)的目的是什么 每分钟传入请求数 基于http状态的故障率 代码(状态代码>=400) 我尝试了rate(http\u请求总数[5m])[30m:1m] 基于,但无法在图形上显示。执行查询时抛出错误:范围查询的表达式类型“范围向量”无效,必须

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

假设我的度量是这样定义的(在go中)

路径传入url路径和状态为http响应状态。 我的promQL查询(绘制图表)的目的是什么

  • 每分钟传入请求数
  • 基于http状态的故障率 代码(状态代码>=400)
  • 我尝试了
    rate(http\u请求总数[5m])[30m:1m]
    基于,但无法在图形上显示。执行查询时抛出错误:
    范围查询的表达式类型“范围向量”无效,必须是标量或即时向量

    每分钟传入请求数

    费率(http\u请求总数[5m])*60

    基于http状态代码的故障率(状态代码>=400)

    rate(http\u请求总数{status=~“[45]..”}[5m])

    然而,这是脆弱的,如果没有4xx或5xx状态代码,它将不会返回任何信息。

    必须是这样的
    速率(http\u requests\u total{status=~“[45]..”}[5m])
    带有
    ~
    httpRequests = prometheus.NewCounterVec(
        prometheus.CounterOpts{
            Name: "http_requests_total",
            Help: "Incoming http requests.",
        },
        []string{"path", "status"},
    )