【问题标题】:Is there a possibility to add custom spring boot metrics tags at runtime?是否有可能在运行时添加自定义 Spring Boot 指标标签?
【发布时间】:2021-06-14 15:25:48
【问题描述】:
我正在使用带有 micrometer-registry-prometheus 的 Spring Boot,尝试存储来自 http 标头、安全上下文等的自定义标签。
于是我找到了 MeterFilter iterface 并尝试用它来存储我需要的数据。
但是 MeterFilter 方法在请求完成后起作用,所以那时我没有任何关于请求的信息。
好像这种情况很常见,有没有可能实现呢?
【问题讨论】:
标签:
java
spring
spring-boot
metrics
【解决方案1】:
如果您使用 Spring MVC,您可以定义一个实现 WebMvcTagsProvider 的 bean,以完全控制添加到请求-响应交换指标的标签。或者,您可以定义一个实现 WebMvcTagsContributor 的 bean 以添加到默认标签。同样,如果您使用 Spring WebFlux,您可以定义实现 WebFluxTagsProvider 和 WebFluxTagsContributor 的 bean,以完全控制标签并分别贡献额外的标签。