diff --git a/monitor/pom.xml b/monitor/pom.xml index 3aa58c8b..51973749 100644 --- a/monitor/pom.xml +++ b/monitor/pom.xml @@ -23,7 +23,6 @@ 3.0 3.0 - 5.3.4 2.4.3 diff --git a/monitor/src/main/java/com/zfoo/monitor/model/JvmMemoryVo.java b/monitor/src/main/java/com/zfoo/monitor/model/JvmMemoryVo.java new file mode 100644 index 00000000..b843ae0a --- /dev/null +++ b/monitor/src/main/java/com/zfoo/monitor/model/JvmMemoryVo.java @@ -0,0 +1,68 @@ +package com.zfoo.monitor.model; + +import java.lang.management.MemoryUsage; + +/** + * @author yh + * @date 2022/10/10 下午6:44 + */ + +public class JvmMemoryVo { + private String name; + private double total; + private double max; + private double used; + + @Override + public String toString() { + return "JvmMemoryVo{" + + "name='" + name + '\'' + + ", total=" + total + + ", max=" + max + + ", used=" + used + + '}'; + } + + public JvmMemoryVo(String name, MemoryUsage usage) { + this.name=name; + this.total=bitTomb(usage.getCommitted()); + this.max=bitTomb(usage.getMax()); + this.used=bitTomb(usage.getUsed()); + + } + private static double bitTomb(long val){ + return (double) (val/1024/1024); + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public double getTotal() { + return total; + } + + public void setTotal(double total) { + this.total = total; + } + + public double getMax() { + return max; + } + + public void setMax(double max) { + this.max = max; + } + + public double getUsed() { + return used; + } + + public void setUsed(double used) { + this.used = used; + } +} diff --git a/monitor/src/main/java/com/zfoo/monitor/util/JvmUtils.java b/monitor/src/main/java/com/zfoo/monitor/util/JvmUtils.java new file mode 100644 index 00000000..facc6b55 --- /dev/null +++ b/monitor/src/main/java/com/zfoo/monitor/util/JvmUtils.java @@ -0,0 +1,37 @@ +package com.zfoo.monitor.util; + +import com.zfoo.monitor.model.JvmMemoryVo; + +import java.lang.management.*; +import java.util.ArrayList; +import java.util.List; + +/** + * @author yh + * @date 2022/10/10 下午6:42 + */ +public class JvmUtils { + + + public static List getJvmInfo() { + List list = new ArrayList<>(); + + MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean(); + + //堆内存 + MemoryUsage heapMemoryUsage = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage(); + list.add(new JvmMemoryVo("heap", heapMemoryUsage)); + + List memoryPoolMXBeans = ManagementFactory.getMemoryPoolMXBeans(); + for (MemoryPoolMXBean mxBean : memoryPoolMXBeans) { + //获取堆内存明细 + if (MemoryType.HEAP.equals(mxBean.getType())) { + MemoryUsage usage = mxBean.getUsage(); + list.add(new JvmMemoryVo(mxBean.getName(), usage)); + } + } + return list; + } + + +} diff --git a/monitor/src/test/java/com/zfoo/monitor/ApplicationTest.java b/monitor/src/test/java/com/zfoo/monitor/ApplicationTest.java index 52bcd8a7..22e762c8 100644 --- a/monitor/src/test/java/com/zfoo/monitor/ApplicationTest.java +++ b/monitor/src/test/java/com/zfoo/monitor/ApplicationTest.java @@ -13,6 +13,7 @@ package com.zfoo.monitor; +import com.zfoo.monitor.util.JvmUtils; import com.zfoo.monitor.util.OSUtils; import com.zfoo.protocol.util.JsonUtils; import com.zfoo.util.ThreadUtils; @@ -118,4 +119,13 @@ public class ApplicationTest { System.out.println(monitor); } + + + @Test + public void JvmTest(){ + JvmUtils.getJvmInfo().forEach(a->{ + System.out.println(a.toString()); + }); + } + } diff --git a/monitor/src/test/resources/logback-test.xml b/monitor/src/test/resources/logback-test.xml new file mode 100644 index 00000000..ee78c75d --- /dev/null +++ b/monitor/src/test/resources/logback-test.xml @@ -0,0 +1,44 @@ + + + + + com.zfoo.monitor + + + + + + + + ${PATTERN_CONSOLE} + UTF-8 + + + + + + + + + + + + + + + + + + + + + +