首页 > 解决方案 > 使用 Spring Boot Actuator 计算每秒的请求数

问题描述

我想计算来自 Spring Boot 2 应用程序的特定 URL 的每秒请求数,以及每个请求(延迟)所花费的时间(以毫秒为单位)。我们可以从 Actuator/Prometheus 中看到以下指标:

http_server_request_config_seconds_count  
http_server_request_config_seconds_sum  

我很困惑如何在 Prometheus 中绘制它以获得我的结果。我需要添加直方图或分位数吗?

标签: spring-bootprometheusspring-boot-actuator

解决方案


如果您只关心每秒请求数,则不需要与分位数相关的任何内容。

irate(http_server_requests_seconds_count{uri="/your-uri"}[5m])

如果您对整体响应时间感兴趣:

irate(http_server_request_duration_seconds_sum{exception="None", uri = "/your-url"}[5m]) / irate(http_server_requests_duration_seconds_count{exception="None", uri = "/your-url"}[5m])

如果您想要更精确的指标(分位数),可以参考 [Prometheus 文档][1]。[1]:https://prometheus.io/docs/practices/histograms/#quantiles 例如:

histogram_quantile(0.99, sum(rate(http_server_requests_seconds_bucket{exception="None", uri = "/your-uri"}[5m])) by (le))

推荐阅读