【发布时间】:2020-05-02 02:17:48
【问题描述】:
我是一般指标的新手,尤其是 Micrometer,所以这可能是一个愚蠢的问题:
Micrometer 在home page 上将自己描述为“没有供应商锁定”、“考虑 SLF4J,但用于度量”的“门面”。具有“对 [...] Netflix Atlas 的内置支持”。 docs 说它包含在 Spring Boot 2 中。
所以我希望能够在启动时配置监控系统 - 就像我使用 SLF4J 一样。所以this doc 描述了 Spring Boot 的设置management.metrics.export.atlas.enabled(以及其他)。但即使使用此设置,自动连接 MeterRegistry registry 也会失败,如下所示:
[snip] 中构造函数的参数 4 需要一个“io.micrometer.core.instrument.MeterRegistry”类型的 bean,但无法找到。
行动:
考虑在你的配置中定义一个“io.micrometer.core.instrument.MeterRegistry”类型的bean。
Google 将我带到了 Baeldung,在那里我 read 了解了一些 micrometer-registry-atlas 依赖项,并提供了 MeterRegistrybean 类型为 AtlasMeterRegistry。这行得通,但这不是我所说的“没有供应商锁定的外观”,但我想我只是做错了吗?
如何在运行时提供监控系统,在不重新编译的情况下在 Atlas 和任何其他系统之间切换?
【问题讨论】:
-
是的,我看到了。这是关于一个名为“issues-dashboard”的项目,所以它没有直接关系......我仍然对项目所有者在 2018 年 7 月 5 日提到的修复感兴趣——我无法检查相应的提交。提交仅来自 2017 年
-
您可以在运行时使用您提到的属性进行切换,您只需要包含您想要切换的所有注册表依赖项(atlas o/andr Prometheus 等)。然后只需切换属性,无需重新编译。
-
不确定我是否理解:显然我需要提供
AtlasMeterRegistry类型的 bean,如果不在编译时提供 deps,我将如何实现这一点?我能想到的唯一妥协是在编译期间包含我想要支持的 all deps 并制作相应的 bean/configurations@ConditionalOnProperty.. -
编辑:当然可以使用 Spring XML 配置来配置 bean。你是这个意思吗?我来自 Spring Boot(见问题),所以这不是我通常想到的 ;-)
标签: spring-boot micrometer spring-micrometer