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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+