Java 使用DropWizard metrics Jvm获取JMX值
我尝试使用dropWizard库获取JVM度量值(MemoryUsageGaugeSet、GarbageCollectionUsageGaugeSet)Java 使用DropWizard metrics Jvm获取JMX值,java,dropwizard,codahale-metrics,Java,Dropwizard,Codahale Metrics,我尝试使用dropWizard库获取JVM度量值(MemoryUsageGaugeSet、GarbageCollectionUsageGaugeSet) <dependency> <groupId>io.dropwizard.metrics</groupId> <artifactId>metrics-jvm</artifactId> <version>3.1.2</version> &
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-jvm</artifactId>
<version>3.1.2</version>
</dependency>
io.dropwizard.metrics
度量jvm
3.1.2
代码实现
public static void main(String[] args ){
MemoryUsageGaugeSet memory = new MemoryUsageGaugeSet();
Map<String, Metric> memoryMap = memory.getMetrics();
system.out.println( memoryMap);}
publicstaticvoidmain(字符串[]args){
MemoryUsageGaugeSet memory=新的MemoryUsageGaugeSet();
Map memoryMap=memory.getMetrics();
system.out.println(memoryMap);}
我得到的结果是
{heap.committed=com.codahale.metrics.jvm.MemoryUsageGaugeSet$8@d16011,non-heap.used=com.codahale.metrics.jvm.MemoryUsageGaugeSet$11@cc09904,pools.Code Cache.used=com.codahale.metrics.jvm.MemoryUsageGaugeSet$17@748032cc,pools.Code Cache.committed=com.codahale.metrics.jvm.MemoryUsageGaugeSet$18@2b6e0423,heap.used=com.codahale.metrics.jvm.MemoryU萨吉塞特$6@203428b7,pools.PS-Old-Gen.init=com.codahale.metrics.jvm.MemoryUsageGaugeSet$19@28b49d0c,total.committed=com.codahale.metrics.jvm.MemoryUsageGaugeSet$4@5dd7cc84,pools.PS-Old-Gen.max=com.codahale.metrics.jvm.MemoryUsageGaugeSet$16@6438401,total.init=com.codahale.metrics.jvm.MemoryUsageGaugeSet$1@7b365ee,non-heap.max=com.codahale。metrics.jvm.MemoryUsageGaugeSet$12@be3d4e9,pools.PS Eden Space.init=com.codahale.metrics.jvm.MemoryUsageGaugeSet$19@68339afd,pools.Compressed Class Space.used=com.codahale.metrics.jvm.MemoryUsageGaugeSet$17@724a6876,pools.Metaspace.usage=com.codahale.metrics.jvm.MemoryUsageGaugeSet$15@6ecaffc4,pools.Metaspace.max=com.codahale.metrics.jvm.memr尤萨吉塞特$16@7b1b3a68,pools.PS Eden Space.committed=com.codahale.metrics.jvm.MemoryUsageGaugeSet$18@f8ba384,pools.PS Eden Space.max=com.codahale.metrics.jvm.MemoryUsageGaugeSet$16@2e2373db,pools.Compressed Class Space.usage=com.codahale.metrics.jvm.MemoryUsageGaugeSet$15@17ae8d04,heap.usage=com.codahale.metrics.jvm.MemoryUsageGaugeSet$9@35c43de3,pools.PS Eden Space.usage=com.codahale.metrics.jvm.memoryusagegaugageset$15@67013f5c,pools.PS Survivor Space.max=com.codahale.metrics.jvm.MemoryUsageGaugeSet$16@520935cc,pools.Code Cache.max=com.codahale.metrics.jvm.MemoryUsageGaugeSet$16@31ac5424,pools.Compressed Class Space.init=com.codahale.metrics.jvm.MemoryUsageGaugeSet$19@25135cd7,pools.Metaspace.init=com.codahale.metrics.jvm.MemoryUsageGaugeSet$19@4b066cf6,pools.PS Survivor Space.usage=com.codahale.metrics.jvm.MemoryUsageGaugeSet$15@50ba970f,pools.PS-Old-Gen.usage=com.codahale.metrics.jvm.MemoryUsageGaugeSet$15@3e4e448,pools.Code Cache.usage=com.codahale.metrics.jvm.MemoryUsageGaugeSet$15@3c2ef507,pools.PS-Survivor-Space.init=com.codahale.metrics.jvm.MemoryUsageGaugeSet$19@44374fa8,total.used=com.codahale.metrics.jvm.MemoryUsageGaugeSet$2@40b1aace,pools.Code Cache.init=com.codahale.metrics.jvm.MemoryUsageGaugeSet$19@6453d034,pools.PS-Old-Gen.committed=com.codahale.metrics.jvm.MemoryUsageGaugeSet$18@2f9e8774,heap.init=com.codahale.metrics.jvm.MemoryUsageGau石膏$5@512ad720,non-heap.committed=com.codahale.metrics.jvm.MemoryUsageGaugeSet$13@1c80e011,pools.Compressed Class Space.committed=com.codahale.metrics.jvm.MemoryUsageGaugeSet$18@662841c5,non-heap.init=com.codahale.metrics.jvm.MemoryUsageGaugeSet$10@3dd6cf53,pools.PS Eden Space.used=com.codahale.metrics.jvm.MemoryUsageGaugeSet$17@3a428c1e不n-heap.usage=com.codahale.metrics.jvm.MemoryUsageGaugeSet$14@21d9632f,heap.max=com.codahale.metrics.jvm.MemoryUsageGaugeSet$7@5db28b8,pools.PS Survivor Space.used=com.codahale.metrics.jvm.MemoryUsageGaugeSet$17@efcd307,pools.Metaspace.committed=com.codahale.metrics.jvm.MemoryUsageGaugeSet$18@20f09cba,total.max=com.codahale.metrics.jvm.MemoryUs年龄表集$3@4ada5390,pools.Metaspace.used=com.codahale.metrics.jvm.MemoryUsageGaugeSet$17@16982c9b,pools.Compressed Class Space.max=com.codahale.metrics.jvm.MemoryUsageGaugeSet$16@7e94b1a4,pools.PS Survivor Space.committed=com.codahale.metrics.jvm.MemoryUsageGaugeSet$18@5aa5f780,pools.PS-Old-Gen.used=com.codahale.metrics.jvm.MemoryUsageGauge设置$17@427b7997}
我得到了对象的引用,我想得到这些引用的值。怎么办?要得到/打印对象的值,你需要在类中实现
toString()
,而MemoryUsageSet
没有。
核实@
一种方法是使用自己的实现扩展类toString()
另一种方法是在地图上迭代并打印每个值
Map<String, Metric> memoryMap = memory.getMetrics();
for (String key : memoryMap.keySet()) {
Metric m = memoryMap.get(key);
System.out.println(m.getClass());
if (m instanceof Gauge) {
System.out.println(((Gauge<Long>) m).getValue());
}
}
Map memoryMap=memory.getMetrics();
for(字符串键:memoryMap.keySet()){
度量m=memoryMap.get(键);
System.out.println(m.getClass());
if(仪表的m实例){
System.out.println(((仪表)m.getValue());
}
}
MemoryUsageGaugeSet
生成Gauge
,它是度量的一个实现
希望这有帮助