1

我正在使用 spring boot 2.x 并使用千分尺将入站 http 请求指标记录到 PrometheusMeterRegistry。

Spring Boot 指标执行器端点显示的指标如下

http_server_requests_seconds_count{exception="None",method="GET",status="200",uri="/v2/endpoint1",} 272.0 http_server_requests_seconds_count{exception="SomeException",method="GET",status="400",uri="/v2/endpoint1",} 8.0 http_server_requests_seconds_count{exception="SomeOtherException",method="GET",status="422",uri="/v2/endpoint1",} 5.0 http_server_requests_seconds_count{exception="None",method="GET",status="200",uri="/v2/endpoint2",} 472.0 http_server_requests_seconds_count{exception="SomeException",method="GET",status="400",uri="/v2/endpoint2",} 11.0 http_server_requests_seconds_count{exception="SomeOtherException",method="GET",status="422",uri="/v2/endpoint2",} 7.0

我对以下结果感兴趣

输出:(最后 x 分钟前 10 名)

1, /v2/endpoint2, {actual count of non 200 status codes in last minutes or so}
2, /v2/endpoint1, {actual count of non 200 status codes in last minutes or so}

我尝试使用类似于下面的计数功能。但是它不允许我提供时间范围。我无法按照我上面提到的方式让它工作。感谢您对此的任何帮助。

count(http_server_requests_seconds_count{status!="200"}) by (uri, method)
4

1 回答 1

1

您想获取每个 uri/方法的总数,然后选择其中的前 10 个:

topk(10,
  sum by (uri, method)(
    increase(http_server_requests_seconds_count{status!="200"}[10m])
  )
)
于 2018-12-11T19:59:21.173 回答