使用Spring Actuator访问内部MBean JMX属性



我通过其JMX接口使用Spring Actuator为我们的监控团队提供指标。

我们的监控团队正在使用可以跟踪特定MBean属性的工具。有了"标准"JMX,就像Tomcat公开的那个一样,它可以很好地工作。然而,在Spring Actuator中,暴露的MBean只是灵敏、端点和数据。DATA包含一个json,其中包含所有属性(类似于您在http接口中看到的内容)。

有没有任何方法可以将特定信息(例如,mem用法、threads.active等)公开为自己的MBean属性,而不是将所有属性显示为一个大JSON?

Spring的JMX解决方案对于许多生产监控工具来说并不像默认情况那样用户友好。

我试着检查jolokia,但从文档中我无法理解这个框架是否能满足我的需求。

谢谢!

请使用以下代码查看jconsole上MBEAN选项卡中的METRIX节点,显示JVM内存、线程和;GC表示。

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.codahale.metrics.JmxReporter;
import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.jvm.GarbageCollectorMetricSet;
import com.codahale.metrics.jvm.MemoryUsageGaugeSet;
import com.codahale.metrics.jvm.ThreadStatesGaugeSet;
@Configuration
public class Metrix {
    @Bean
    public JmxReporter jmxReporter() {
        JmxReporter reporter = JmxReporter.forRegistry(getMetricRegistry()).build();
        reporter.start();
        return reporter;
    }
    public MetricRegistry getMetricRegistry() {
        MetricRegistry metricRegistry = new MetricRegistry();
        metricRegistry.register("jvm-thread-state", new ThreadStatesGaugeSet());
        metricRegistry.register("jvm-mem", new MemoryUsageGaugeSet());
        metricRegistry.register("jvm-gc", new GarbageCollectorMetricSet());
        return metricRegistry;
    }
}
Use following libraries:-
<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.3.5.RELEASE</version>
</dependency>
<dependency>
    <groupId>io.dropwizard.metrics</groupId>
    <artifactId>metrics-core</artifactId>
    <version>3.1.2</version>
</dependency>
<dependency>
    <groupId>io.dropwizard.metrics</groupId>
    <artifactId>metrics-jvm</artifactId>
    <version>3.1.2</version>
</dependency>

相关内容

  • 没有找到相关文章

最新更新