我通过其JMX界面使用Spring Actuator为我们的监控团队提供指标。
我们的监控团队正在使用可以跟踪特定MBean属性的工具。使用“标准”JMX,就像Tomcat公开的JMX一样,这很好用。但是,在Spring Actuator中,暴露的MBean只是SENSITIVE,ENDPOINT和DATA。 DATA包含一个json,里面包含所有属性(类似于你在http界面中看到的)。
有没有办法将特定信息(例如,mem usage,threads.active等)公开为自己的MBean属性,而不是将所有属性显示为大JSON?
Spring的JMX解决方案对于许多生产监控工具来说都不是用户友好的默认设置。
我试图检查jolokia但是我无法从文档中理解这个框架是否会提供我需要的东西。
谢谢!
答案 0 :(得分:0)
请使用以下代码查看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>