diff --git a/monitor/pom.xml b/monitor/pom.xml
index 3aa58c8b..4eda9d9a 100644
--- a/monitor/pom.xml
+++ b/monitor/pom.xml
@@ -23,7 +23,6 @@
3.0
3.0
-
5.3.4
2.4.3
@@ -103,9 +102,15 @@
${file.encoding}
${file.encoding}
+
+
+ org.projectlombok
+ lombok
+ 1.18.24
+
com.zfoo
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..1722d60b
--- /dev/null
+++ b/monitor/src/main/java/com/zfoo/monitor/model/JvmMemoryVo.java
@@ -0,0 +1,53 @@
+package com.zfoo.monitor.model;
+
+import lombok.Builder;
+
+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 double getMax() {
+ return max;
+ }
+
+ public double getUsed() {
+ return 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..b29772f4
--- /dev/null
+++ b/monitor/src/main/java/com/zfoo/monitor/util/JvmUtils.java
@@ -0,0 +1,43 @@
+package com.zfoo.monitor.util;
+
+import com.sun.jdi.ThreadReference;
+import com.sun.tools.attach.AttachNotSupportedException;
+import com.sun.tools.attach.VirtualMachine;
+import com.sun.tools.attach.spi.AttachProvider;
+import com.zfoo.monitor.model.JvmMemoryVo;
+
+import java.io.IOException;
+import java.lang.management.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
+/**
+ * @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());
+ });
+ }
+
}