如何拆分Spring Boot API的Prometheus 2xx状态码细分指标?
按具体HTTP状态码获取Prometheus独立指标的实现方法
当然可以实现。Spring Boot Actuator配合Micrometer(Prometheus的底层依赖)默认会将2xx/3xx这类状态码聚合展示,但通过简单配置就能让它输出具体的HTTP状态码指标。
核心配置
在application.yml或application.properties中添加以下配置:
YAML格式:
management: metrics: web: server: request: autotime: enabled: true tagging: status: cardinality: precise mappings: status: tags: enabled: true
Properties格式:
management.metrics.web.server.request.autotime.enabled=true management.metrics.web.server.request.tagging.status.cardinality=precise management.metrics.web.server.mappings.status.tags.enabled=true
配置说明
management.metrics.web.server.request.tagging.status.cardinality=precise:这是关键配置,它会关闭状态码的范围聚合,让Micrometer将具体的状态码(如200、201、206)作为status标签的值输出。- 开启
autotime是为了确保请求时长类指标正常生成,mappings.status.tags.enabled则保证状态码标签能被正确关联到对应的请求指标上。
验证效果
重启应用后,访问/actuator/prometheus,就能看到类似如下的具体状态码指标:
http_server_requests_seconds{exception="None",method="POST",status="200",uri="/myTestAPI",quantile="0.95",} 1.25 http_server_requests_seconds_count{exception="None",method="POST",status="201",uri="/myTestAPI",} 120.0 http_server_requests_seconds_sum{exception="None",method="POST",status="206",uri="/myTestAPI",} 345.67
此时你就可以分别监控每个具体HTTP状态码的请求计数、时长等指标了。
内容的提问来源于stack exchange,提问作者Sachin Mankotia
相关产品推荐
相关产品推荐

