【问题标题】:Micrometer publish to JMX in non-SpringBoot-Project千分尺在非 SpringBoot-Project 中发布到 JMX
【发布时间】:2021-12-02 14:20:22
【问题描述】:

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

是否可以将我使用 Micrometer 收集的信息发布到非 SpringBoot 应用程序中的 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 还很陌生,所以我找不到任何可以帮助我解决这个问题的东西。

【问题讨论】:

    标签: jmx micrometer


    【解决方案1】:

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

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

    然后就可以使用了:

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

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

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

    虽然建议您注入您的 MeterRegistry,尤其是在您使用任何依赖注入解决方案时。

    【讨论】:

    • 完美,没想到这么简单。我认为 Spring 会执行更多魔术来发布这些数据。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 2023-03-20
    • 2022-07-05
    • 2019-08-26
    • 1970-01-01
    • 1970-01-01
    • 2022-12-02
    相关资源
    最近更新 更多