我正在使用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函数类似于下面的内容。但是,它不能让我提供时间范围。我无法按照我上面提到的方式工作。感谢任何帮助。
count(http_server_requests_seconds_count{status!="200"}) by (uri, method)
答案 0 :(得分:0)
您要获取每个uri /方法的总计,然后选择其中的前10个:
topk(10,
sum by (uri, method)(
increase(http_server_requests_seconds_count{status!="200"}[10m])
)
)