我如何在 spring 引导应用程序中将千分尺与 jmx 一起使用?

How do i use micrometer with jmx in spring boot app?

我对千分尺还很陌生,在我的 spring 启动应用程序中遇到一些基本设置问题。

代码:

MeterRegistry registry = new SimpleMeterRegistry();
Timer timer = registry.timer("app.event", "type","ping");
timer.record(System.currentTimeMillis() - date.getTime(),TimeUnit.MILLISECONDS);

我尝试使用 jconsole 在 jmx 中寻找名称为 ping 的 bean,但找不到。我相信我在这里缺少一些基本的东西,但不确定真正的原因。我也尝试按照千分尺文档进行操作,但它似乎在没有太多示例的情况下解释了千分尺的不同功能。如果能提供任何帮助,我将不胜感激。

也许您还没有包含 jmx 导出器?

来自documentation

<dependency>
  <groupId>io.micrometer</groupId>
  <artifactId>micrometer-registry-jmx</artifactId>
  <version>${micrometer.version}</version>
</dependency>

您需要使用自动配置的MeterRegistry。因此,您应该将 MeterRegistry 注入到您想要创建仪表的任何组件中,而不是在那里创建您自己的仪表。或者,如果需要,您可以创建自己的 bean。

我创建了 a sample demonstrating how to do it。请注意,它位于 so-51940816 分支,而不是 master.