Bläddra i källkod

删除 common 中的 jvm 包, 使用 cn.reghao.jutil.jdk 中的 jvm 包

reghao 2 år sedan
förälder
incheckning
0698ec9758

+ 0 - 1
common/src/main/java/cn/reghao/devops/common/machine/Memory.java

@@ -1,6 +1,5 @@
 package cn.reghao.devops.common.machine;
 
-import cn.reghao.devops.common.util.jvm.po.MemoryStat;
 import cn.reghao.jutil.jdk.machine.data.MachineData;
 import cn.reghao.jutil.jdk.machine.data.detail.MemoryDetail;
 import oshi.hardware.GlobalMemory;

+ 1 - 1
common/src/main/java/cn/reghao/devops/common/util/jvm/po/MemoryStat.java → common/src/main/java/cn/reghao/devops/common/machine/MemoryStat.java

@@ -1,4 +1,4 @@
-package cn.reghao.devops.common.util.jvm.po;
+package cn.reghao.devops.common.machine;
 
 import cn.reghao.jutil.jdk.converter.ByteConverter;
 import cn.reghao.jutil.jdk.converter.ByteType;

+ 0 - 110
common/src/main/java/cn/reghao/devops/common/util/jvm/JVM.java

@@ -1,110 +0,0 @@
-package cn.reghao.devops.common.util.jvm;
-
-import cn.reghao.devops.common.util.jvm.po.*;
-import cn.reghao.jutil.jdk.converter.DateTimeConverter;
-
-import java.lang.management.*;
-import java.util.*;
-
-/**
- * JVM 信息和状态
- *
- * @author reghao
- * @date 2020-09-10 18:31:16
- */
-public class JVM {
-    private final RuntimeMXBean rtBean;
-    private final ClassLoadingMXBean classLoadingBean;
-    private final ThreadMXBean threadBean;
-    private final MemoryMXBean memoryBean;
-    private final List<MemoryPoolMXBean> memoryPoolBeans;
-    private final List<BufferPoolMXBean> bufferPoolBeans;
-    private final List<GarbageCollectorMXBean> gcBeans;
-
-    public JVM() {
-        this.rtBean = ManagementFactory.getRuntimeMXBean();
-        this.classLoadingBean = ManagementFactory.getClassLoadingMXBean();
-        this.threadBean = ManagementFactory.getThreadMXBean();
-        this.memoryBean = ManagementFactory.getMemoryMXBean();
-        this.memoryPoolBeans = ManagementFactory.getMemoryPoolMXBeans();
-        this.bufferPoolBeans = ManagementFactory.getPlatformMXBeans(BufferPoolMXBean.class);
-        this.gcBeans = ManagementFactory.getGarbageCollectorMXBeans();
-    }
-
-    public JvmInfo info() {
-        JvmInfo jvmInfo = new JvmInfo();
-        jvmInfo.setOsName(System.getProperty("os.name"));
-        jvmInfo.setOsArch(System.getProperty("os.arch"));
-        jvmInfo.setOsVersion(System.getProperty("os.version"));
-
-        jvmInfo.setJavaRuntimeName(System.getProperty("java.runtime.name"));
-        jvmInfo.setJavaRuntimeVersion(System.getProperty("java.runtime.version"));
-        jvmInfo.setJavaClassVersion(System.getProperty("java.class.version"));
-
-        jvmInfo.setJvmName(System.getProperty("java.vm.name"));
-        jvmInfo.setJvmVersion(System.getProperty("java.vm.version"));
-        jvmInfo.setJvmVendor(System.getProperty("java.vm.vendor"));
-
-        // TODO pid 不一定准确
-        jvmInfo.setJvmPid(Integer.parseInt(rtBean.getName().split("@")[0]));
-        jvmInfo.setJvmStartTime(DateTimeConverter.msTimestampFormat(rtBean.getStartTime()));
-
-        return jvmInfo;
-    }
-
-    public JvmStat stat() {
-        JvmStat jvmStat = new JvmStat();
-        jvmStat.setJvmClassesLoaded(classLoadingBean.getLoadedClassCount());
-        jvmStat.setJvmClassesUnloaded(classLoadingBean.getUnloadedClassCount());
-        jvmStat.setJvmClassesTotal(classLoadingBean.getTotalLoadedClassCount());
-
-        MemoryStat heap = new MemoryStat(memoryBean.getHeapMemoryUsage());
-        jvmStat.setJvmMemoryHeapInit(heap.getInit());
-        jvmStat.setJvmMemoryHeapMax(heap.getMax());
-        jvmStat.setJvmMemoryHeapUsed(heap.getUsed());
-        jvmStat.setJvmMemoryHeapCommitted(heap.getCommitted());
-
-        MemoryStat nonheap = new MemoryStat(memoryBean.getNonHeapMemoryUsage());
-        jvmStat.setJvmMemoryNonheapInit(nonheap.getInit());
-        jvmStat.setJvmMemoryNonheapMax(nonheap.getMax());
-        jvmStat.setJvmMemoryNonheapUsed(nonheap.getUsed());
-        jvmStat.setJvmMemoryNonheapCommitted(nonheap.getCommitted());
-
-        jvmStat.setJvmBufferPools(bufferPoolStat());
-        jvmStat.setJvmMemoryPools(memoryPoolStat());
-        jvmStat.setJvmGarbageCollectors(gcStat());
-
-        jvmStat.setJvmThreadsLive(threadBean.getThreadCount());
-        jvmStat.setJvmThreadsDaemon(threadBean.getDaemonThreadCount());
-        jvmStat.setJvmThreadsPeak(threadBean.getPeakThreadCount());
-        jvmStat.setJvmThreads(threadStat());
-        return jvmStat;
-    }
-
-    private List<BufferPoolStat> bufferPoolStat() {
-        List<BufferPoolStat> list = new ArrayList<>();
-        bufferPoolBeans.forEach(bufferPoolBean -> list.add(new BufferPoolStat(bufferPoolBean)));
-        return list;
-    }
-
-    private Map<String, MemoryPoolStat> memoryPoolStat() {
-        Map<String, MemoryPoolStat> map = new HashMap<>();
-        memoryPoolBeans.forEach(
-                // TODO name 是否唯一?
-                memoryPoolBean -> map.put(memoryPoolBean.getName(), new MemoryPoolStat(memoryPoolBean)));
-        return map;
-    }
-
-    private List<GarbageCollectorStat> gcStat() {
-        List<GarbageCollectorStat> list = new ArrayList<>();
-        gcBeans.forEach(gcBean -> list.add(new GarbageCollectorStat(gcBean)));
-        return list;
-    }
-
-    private List<ThreadStat> threadStat() {
-        List<ThreadStat> list = new ArrayList<>();
-        Arrays.stream(threadBean.getThreadInfo(threadBean.getAllThreadIds()))
-                .forEach(threadInfo -> list.add(new ThreadStat(threadInfo)));
-        return list;
-    }
-}

+ 0 - 27
common/src/main/java/cn/reghao/devops/common/util/jvm/po/BufferPoolStat.java

@@ -1,27 +0,0 @@
-package cn.reghao.devops.common.util.jvm.po;
-
-import cn.reghao.jutil.jdk.converter.ByteConverter;
-import cn.reghao.jutil.jdk.converter.ByteType;
-import lombok.Data;
-
-import java.lang.management.BufferPoolMXBean;
-
-/**
- * @author reghao
- * @date 2020-10-21 15:49:56
- */
-@Data
-public class BufferPoolStat {
-    private String poolName;
-    private long bufferCount;
-    private String totalMemory;
-    private String usedMemory;
-
-    public BufferPoolStat(BufferPoolMXBean bufferPoolBean) {
-        ByteConverter converter = new ByteConverter();
-        this.poolName = bufferPoolBean.getName();
-        this.bufferCount = bufferPoolBean.getCount();
-        this.totalMemory = converter.convert(ByteType.Bytes, bufferPoolBean.getTotalCapacity());
-        this.usedMemory = converter.convert(ByteType.Bytes, bufferPoolBean.getMemoryUsed());
-    }
-}

+ 0 - 28
common/src/main/java/cn/reghao/devops/common/util/jvm/po/GarbageCollectorStat.java

@@ -1,28 +0,0 @@
-package cn.reghao.devops.common.util.jvm.po;
-
-import lombok.Data;
-
-import java.lang.management.GarbageCollectorMXBean;
-import java.util.Arrays;
-
-/**
- * @author reghao
- * @date 2020-10-21 15:49:56
- */
-@Data
-public class GarbageCollectorStat {
-    private String gcName;
-    // GC 管理的内存池
-    private String memoryPools;
-    // 自 JVM 启动后总共发生的 GC 次数
-    private long gcCount;
-    // 自 JVM 启动后 GC 总共耗费的时间
-    private long gcTime;
-
-    public GarbageCollectorStat(GarbageCollectorMXBean gcBean) {
-        this.gcName = gcBean.getName();
-        this.memoryPools = Arrays.toString(gcBean.getMemoryPoolNames()).replace("[", "").replace("]", "");
-        this.gcCount = gcBean.getCollectionCount();
-        this.gcTime = gcBean.getCollectionCount();
-    }
-}

+ 0 - 24
common/src/main/java/cn/reghao/devops/common/util/jvm/po/JvmInfo.java

@@ -1,24 +0,0 @@
-package cn.reghao.devops.common.util.jvm.po;
-
-import lombok.Data;
-
-/**
- * @author reghao
- * @date 2020-10-21 10:43:37
- */
-@Data
-public class JvmInfo {
-    private String osName;
-    private String osArch;
-    private String osVersion;
-
-    private String javaRuntimeName;
-    private String javaRuntimeVersion;
-    private String javaClassVersion;
-
-    private String jvmName;
-    private String jvmVersion;
-    private String jvmVendor;
-    private int jvmPid;
-    private String jvmStartTime;
-}

+ 0 - 39
common/src/main/java/cn/reghao/devops/common/util/jvm/po/JvmStat.java

@@ -1,39 +0,0 @@
-package cn.reghao.devops.common.util.jvm.po;
-
-import lombok.Data;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author reghao
- * @date 2020-10-22 15:06:29
- */
-@Data
-public class JvmStat {
-    /* 类加载情况 */
-    private long jvmClassesLoaded;
-    private long jvmClassesUnloaded;
-    private long jvmClassesTotal;
-
-    /* 堆区和非堆区总体内存使用情况 */
-    private String jvmMemoryHeapInit;
-    private String jvmMemoryHeapMax;
-    private String jvmMemoryHeapUsed;
-    private String jvmMemoryHeapCommitted;
-
-    private String jvmMemoryNonheapInit;
-    private String jvmMemoryNonheapMax;
-    private String jvmMemoryNonheapUsed;
-    private String jvmMemoryNonheapCommitted;
-
-    private List<BufferPoolStat> jvmBufferPools;
-    private Map<String, MemoryPoolStat> jvmMemoryPools;
-    private List<GarbageCollectorStat> jvmGarbageCollectors;
-
-    /* 线程使用情况 */
-    private int jvmThreadsLive;
-    private int jvmThreadsDaemon;
-    private int jvmThreadsPeak;
-    private List<ThreadStat> jvmThreads;
-}

+ 0 - 32
common/src/main/java/cn/reghao/devops/common/util/jvm/po/MemoryPoolStat.java

@@ -1,32 +0,0 @@
-package cn.reghao.devops.common.util.jvm.po;
-
-import lombok.Data;
-
-import java.lang.management.MemoryPoolMXBean;
-import java.lang.management.MemoryUsage;
-
-/**
- * @author reghao
- * @date 2020-10-21 15:49:56
- */
-@Data
-public class MemoryPoolStat {
-    private String poolName;
-    private String memoryType;
-    private MemoryStat poolUsage;
-    // 内存池峰值时的使用情况
-    private MemoryStat poolPeakUsage;
-    // 最近一次 GC 后的内存池的使用情况
-    private MemoryStat afterGcUsage;
-
-    public MemoryPoolStat(MemoryPoolMXBean memoryPoolBean) {
-        this.poolName = memoryPoolBean.getName();
-        this.memoryType = memoryPoolBean.getType().name();
-        this.poolUsage = new MemoryStat(memoryPoolBean.getUsage());
-        this.poolPeakUsage = new MemoryStat(memoryPoolBean.getPeakUsage());
-        MemoryUsage collectionMemoryUsage = memoryPoolBean.getCollectionUsage();
-        if (collectionMemoryUsage != null) {
-            this.afterGcUsage = new MemoryStat(collectionMemoryUsage);
-        }
-    }
-}

+ 0 - 36
common/src/main/java/cn/reghao/devops/common/util/jvm/po/ThreadStat.java

@@ -1,36 +0,0 @@
-package cn.reghao.devops.common.util.jvm.po;
-
-import lombok.Data;
-
-import java.lang.management.ThreadInfo;
-
-/**
- * @author reghao
- * @date 2020-10-21 17:31:47
- */
-@Data
-public class ThreadStat {
-    private String threadName;
-    private String threadState;
-    private long blockedTime;
-    private long blockedCount;
-    private long waitedTime;
-    private long waitedCount;
-    private String lockName;
-    private String lockOwnerName;
-    private int lockedMonitorCount;
-    private int lockedSynchronizerCount;
-
-    public ThreadStat(ThreadInfo threadInfo) {
-        this.threadName = threadInfo.getThreadName();
-        this.threadState = threadInfo.getThreadState().name();
-        this.blockedTime = threadInfo.getBlockedTime();
-        this.blockedCount = threadInfo.getBlockedCount();
-        this.waitedTime = threadInfo.getWaitedTime();
-        this.waitedCount = threadInfo.getWaitedCount();
-        this.lockName = threadInfo.getLockName();
-        this.lockOwnerName = threadInfo.getLockOwnerName();
-        this.lockedMonitorCount = threadInfo.getLockedMonitors().length;
-        this.lockedSynchronizerCount = threadInfo.getLockedSynchronizers().length;
-    }
-}

+ 6 - 6
manager/src/main/java/cn/reghao/devops/manager/account/controller/AccountAuthController.java

@@ -1,9 +1,6 @@
 package cn.reghao.devops.manager.account.controller;
 
-import cn.reghao.devops.common.machine.Network;
 import cn.reghao.devops.common.util.NotAvailable;
-import cn.reghao.devops.common.util.jvm.JVM;
-import cn.reghao.devops.common.util.jvm.po.JvmInfo;
 import cn.reghao.devops.common.version.AppVersion;
 import cn.reghao.devops.manager.account.model.constant.RoleType;
 import cn.reghao.devops.manager.account.model.po.Menu;
@@ -11,6 +8,9 @@ import cn.reghao.devops.manager.account.model.po.User;
 import cn.reghao.devops.manager.account.service.HomeService;
 import cn.reghao.devops.manager.account.service.UserContext;
 import cn.reghao.devops.manager.sys.db.repository.SysMessageRepository;
+import cn.reghao.jutil.jdk.jvm.JVM;
+import cn.reghao.jutil.jdk.jvm.model.JvmInfo;
+import cn.reghao.jutil.jdk.machine.id.MachineIdLinux;
 import io.swagger.annotations.Api;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Controller;
@@ -29,14 +29,14 @@ import java.util.Map;
 @Controller
 public class AccountAuthController {
     private final JVM jvm;
-    private final Network network;
+    private final MachineIdLinux machineId;
     private final AppVersion appVersion;
     private final HomeService homeService;
     private final SysMessageRepository sysMessageRepository;
 
     public AccountAuthController(HomeService homeService, SysMessageRepository sysMessageRepository) {
         this.jvm = new JVM();
-        this.network = new Network();
+        this.machineId = new MachineIdLinux();
         this.appVersion = AppVersion.getVersion();
         this.homeService = homeService;
         this.sysMessageRepository = sysMessageRepository;
@@ -87,7 +87,7 @@ public class AccountAuthController {
         String jvmInfo1 = String.format("%s %s", jvmInfo.getJvmName(), jvmInfo.getJvmVersion());
         int pid = jvmInfo.getJvmPid();
         String startAt = jvmInfo.getJvmStartTime();
-        String ipv4 = network.detail().get(0).getIpv4();
+        String ipv4 = machineId.ipv4();
 
         model.addAttribute("managerVersion", commitId);
         model.addAttribute("hostAddr", ipv4);