java - 是否有可能在运行时添加自定义 Spring Boot 指标标签?
问题描述
我正在使用带有 micrometer-registry-prometheus 的 Spring Boot,尝试存储来自 http 标头、安全上下文等的自定义标签。
于是我找到了 MeterFilter iterface,并尝试用它来存储我需要的数据。
但是 MeterFilter 方法在请求完成后起作用,所以那时我没有任何关于请求的信息。
似乎这种情况很常见,有没有可能实现它?
解决方案
如果您使用 Spring MVC,您可以定义一个 bean,该 bean 实现WebMvcTagsProvider
完全控制添加到请求-响应交换指标的标签。或者,您可以定义一个实现WebMvcTagsContributor
添加到默认标签的 bean。同样,如果您使用 Spring WebFlux,您可以定义实现WebFluxTagsProvider
并WebFluxTagsContributor
完全控制标签的 bean,并分别贡献额外的标签。
推荐阅读
- symfony - Symfony 5 - 用户从表中清空元素
- javascript - RXJS,以及关键字 from。将数组、promise 或 iterable 转换为 observable
- javascript - “datetime-local”控件:控件关闭时会触发哪些事件?
- flutter - 如何在颤动中在 ARCore 中插入文本
- cmake - 在 Windows 10 上构建 bullet3 - 并非所有库都已安装
- php - 从给定的两个值中从多维数组中查找值
- javascript - 类型不正确。预期的 pk 值,收到的 str(多对多字段)
- php - PHP 中的简单数组推送超出了允许的内存。(允许内存大小33554432字节用尽(尝试分配33554440字节))
- wolfram-mathematica - 内核无法连接到前端
- java - 删除构造函数“Scanner(file)”的这种使用