如何获取Micrometer @Timed注解统计的各HTTP状态对应请求计数
Spring Boot @Timed 注解按HTTP状态码统计请求次数实现方法
直接通过Actuator metrics端点的标签过滤参数即可查询单状态码对应的请求次数,无需修改现有注解配置。
查询单状态码请求数
要查询接口返回500错误的请求次数,直接在请求metrics端点时追加tag查询参数,格式为tag=标签名:标签值,请求地址示例:
http://localhost:8080/actuator/metrics/status.productnumber?tag=status:500
返回结果中measurements数组里statistic为COUNT的value字段,就是该接口500状态对应的累计请求次数。
多维度组合查询
如果需要组合多个维度过滤,可以拼接多个tag参数,例如查询GET请求、无异常、返回200状态的请求统计:
http://localhost:8080/actuator/metrics/status.productnumber?tag=status:200&tag=method:GET&tag=exception:None
当前指标返回结果里available_tags列出的所有维度都支持按上述规则过滤查询,可用维度包括:
exception:请求抛出的异常类型method:HTTP请求方法uri:接口匹配的路径模板outcome:响应状态大类(SUCCESS/SERVER_ERROR等)status:具体HTTP响应状态码
原理说明
Spring Boot + Micrometer环境下的@Timed注解默认会自动给Web接口指标打上响应状态码、请求方法、异常类型等内置标签,不带参数访问metrics端点返回的COUNT是未加任何过滤的全量总请求数,追加标签参数后就会返回对应维度下的细分统计结果,不需要额外自定义标签或修改切面逻辑。
内容的提问来源于stack exchange,提问作者firstpostcommenter
相关产品推荐
相关产品推荐

