是否可以在运行时添加自定义 spring 启动指标标签?

Is there a possibility to add custom spring boot metrics tags at runtime?

我正在使用 Spring 使用 micrometer-registry-prometheus 启动,尝试存储来自 http headers、安全上下文等的自定义标签

于是我找到了MeterFilter iterface,并尝试用它来存储我需要的数据。

但是 MeterFilter 方法在请求完成后起作用,所以那时我没有任何关于请求的信息。

好像这种情况很常见,有没有可能实现?

如果您使用 Spring MVC,您可以定义一个实现 WebMvcTagsProvider 的 bean,以完全控制添加到请求-响应交换指标的标签。或者,您可以定义一个实现 WebMvcTagsContributor 的 bean 以添加到默认标记。同样,如果您使用 Spring WebFlux,您可以定义实现 WebFluxTagsProviderWebFluxTagsContributor 的 bean 以完全控制标签并分别提供额外的标签。