From d308521ab73f9eb98ccf0d0519b94cb0d23bb927 Mon Sep 17 00:00:00 2001 From: adminoryuan <1317332365@qq.com> Date: Mon, 10 Oct 2022 21:39:01 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat[monitor]:=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E8=8E=B7=E5=8F=96jvm=E5=86=85=E5=AD=98=E4=B8=8E=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- monitor/pom.xml | 7 ++- .../com/zfoo/monitor/model/JvmMemoryVo.java | 53 +++++++++++++++++++ .../java/com/zfoo/monitor/util/JvmUtils.java | 43 +++++++++++++++ .../com/zfoo/monitor/ApplicationTest.java | 10 ++++ 4 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 monitor/src/main/java/com/zfoo/monitor/model/JvmMemoryVo.java create mode 100644 monitor/src/main/java/com/zfoo/monitor/util/JvmUtils.java 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()); + }); + } + } From 4e4fc869568c31e91767685b3550cd66ee6d5bbf Mon Sep 17 00:00:00 2001 From: godotg Date: Tue, 11 Oct 2022 09:04:56 +0800 Subject: [PATCH 2/3] =?UTF-8?q?del[lombok]:=20=E5=8E=BB=E6=8E=89lombok?= =?UTF-8?q?=EF=BC=8Cjdk17=E5=B7=B2=E7=BB=8F=E6=9C=89record?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- monitor/pom.xml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/monitor/pom.xml b/monitor/pom.xml index 4eda9d9a..51973749 100644 --- a/monitor/pom.xml +++ b/monitor/pom.xml @@ -102,15 +102,9 @@ ${file.encoding} ${file.encoding} - - - org.projectlombok - lombok - 1.18.24 - com.zfoo From 2b3d40cae7f50ecd279ede1fcdb2376e3a89e88b Mon Sep 17 00:00:00 2001 From: godotg Date: Tue, 11 Oct 2022 09:10:44 +0800 Subject: [PATCH 3/3] perf[monitor]: add logback-test config --- .../com/zfoo/monitor/model/JvmMemoryVo.java | 21 +++++++-- .../java/com/zfoo/monitor/util/JvmUtils.java | 14 ++---- monitor/src/test/resources/logback-test.xml | 44 +++++++++++++++++++ 3 files changed, 66 insertions(+), 13 deletions(-) create mode 100644 monitor/src/test/resources/logback-test.xml diff --git a/monitor/src/main/java/com/zfoo/monitor/model/JvmMemoryVo.java b/monitor/src/main/java/com/zfoo/monitor/model/JvmMemoryVo.java index 1722d60b..b843ae0a 100644 --- a/monitor/src/main/java/com/zfoo/monitor/model/JvmMemoryVo.java +++ b/monitor/src/main/java/com/zfoo/monitor/model/JvmMemoryVo.java @@ -1,7 +1,5 @@ package com.zfoo.monitor.model; -import lombok.Builder; - import java.lang.management.MemoryUsage; /** @@ -40,14 +38,31 @@ public class JvmMemoryVo { 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 index b29772f4..facc6b55 100644 --- a/monitor/src/main/java/com/zfoo/monitor/util/JvmUtils.java +++ b/monitor/src/main/java/com/zfoo/monitor/util/JvmUtils.java @@ -1,16 +1,10 @@ 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 @@ -19,19 +13,19 @@ import java.util.Properties; public class JvmUtils { - public static List getJvmInfo(){ - List list=new ArrayList<>(); + public static List getJvmInfo() { + List list = new ArrayList<>(); MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean(); //堆内存 MemoryUsage heapMemoryUsage = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage(); - list.add(new JvmMemoryVo("heap",heapMemoryUsage)); + list.add(new JvmMemoryVo("heap", heapMemoryUsage)); List memoryPoolMXBeans = ManagementFactory.getMemoryPoolMXBeans(); for (MemoryPoolMXBean mxBean : memoryPoolMXBeans) { //获取堆内存明细 - if (MemoryType.HEAP.equals(mxBean.getType())){ + if (MemoryType.HEAP.equals(mxBean.getType())) { MemoryUsage usage = mxBean.getUsage(); list.add(new JvmMemoryVo(mxBean.getName(), usage)); } 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 + + + + + + + + + + + + + + + + + + + + + +