Micrometer 在非 SpringBoot 项目中发布到 JMX

Micrometer publish to JMX in non-SpringBoot-Project

似乎在 Micrometer 和 SpringBoot 中有很多魔法可以发布到所选的监控系统。

是否可以在非 SpringBoot 应用程序中将我使用 Micrometer 收集的信息发布到 JMX?

我添加了依赖

implementation 'io.micrometer:micrometer-registry-jmx:latest.release'

然后我添加了一个这样的计时器

Timer timer =
      Timer.builder("name")
          .publishPercentiles(0, 0.5, 0.75, 0.95)
          .register(Metrics.globalRegistry);

但现在我需要将该数据发布到 JMX 才能在 JConsole 中看到该数据。我在互联网上进行了搜索,但由于我对 Micrometer 和 JMX 还很陌生,所以我还找不到任何可以帮助我解决该问题的东西。

我不确定你指的是什么魔法,Spring Boot 会为你自动配置 MeterRegistry 个实例。

如果你想使用JmxMeterRegistry,你需要创建它的一个实例,见:docs and samples

然后就可以使用了:

MeterRegistry registry = new JmxMeterRegistry(...);
Timer timer = Timer.builder("test").register(registry);

如果你不想到处注入你的MeterRegistry,你可以使用全局注册表,see the docs:

MeterRegistry registry = new JmxMeterRegistry(...);
Metrics.addRegistry(registry);

虽然建议注入你的 MeterRegistry 特别是如果你正在使用任何依赖注入解决方案。