此 PR 阻止添加MeterBinder
s CompositeMeterRegistry
。
请参阅https://github.com/micrometer-metrics/micrometer/issues/1282
此 PR 阻止添加MeterBinder
s CompositeMeterRegistry
。
请参阅https://github.com/micrometer-metrics/micrometer/issues/1282
感谢您的公关。我们需要在这里小心行事,因为提议的更改将部分恢复此错误修复。
抱歉,这不起作用。我通过查看 Spring Boot Actuator 指标端点来判断它是否有效,但这一更改使得CompositeMeterRegistry
没有绑定仪表。我认为https://github.com/micrometer-metrics/micrometer/pull/1283#discussion_r265197044中描述了可能的修复方法,但我不确定目前如何弄清楚那里有任何复合仪表注册表。
我尝试了上述方法并在6413c5b中添加了一些测试。
如果有多个复合仪表存储库,则此修复将不起作用。我知道理论上这是可能的,但不确定这样的设置是否在实际中使用。如果可以在那里识别根复合仪表存储库,则可以处理该案件。此外,理论上,仪表注册表的树可能不止一个,我不确定此设置是否有效。
/cc @jkschneider @shakuzen @checketts
感谢您的修复@izeye!是什么Metrics.globalRegistry
?这可能是“根”组合(如果有多个)吗?
@checketts 感谢您的反馈!我考虑过,但这里似乎不是一个选项,因为它是可选的,如下所示:
management.metrics.use-global-registry=true # Whether auto-configured MeterRegistry implementations should be bound to the global static registry on Metrics.
我在产品上遇到这个问题,我们使用 prometheus+New Relic 和我们的 Hystrix 指标双倍。但我们使用 Spring Boot 1.5,因此我将这些更改向后移植到 Micrometer 自己的桥 (micrometer-spring-legacy)。经过 QA 测试后,我们发现我们的指标不再翻倍。但在这个 PR 被接受之前,Micrometer 不会接受 PR。
因此,如果您能了解有关此 PR 的计划或担忧的最新信息,我将不胜感激。谢谢。
@wilkinsona 感谢您的反馈!我按照建议在 04c7553 进行了更新。
另一种方法是始终拥有一个复合注册表(调度程序),即使在使用单个注册表时也是如此,或者将 globalRegistry 从可选更改为必需。但目前的版本似乎也不错。
顺便说一句,CI 构建在不相关的测试中失败了。
@wilkinsona 您对当前状态满意还是想进一步挖掘?
目前的状态对我来说看起来不错。
再次感谢@izeye。建议的更改已合并到 2.1.x 中并转发到 master 中。
@wilkinsona 谢谢!顺便问一下,有什么理由不合并到2.0.x分支吗?
@izeye 2.0.x 现已停产,2.0.9是 2.0.x 系列中的最后一个版本。
@mbhave 感谢您的快速反馈?我不知何故错过了这个消息?