public static JsonNode getHostInfo()

in bigtop-manager-agent/src/main/java/org/apache/bigtop/manager/agent/monitoring/AgentHostMonitoring.java [99:174]


    public static JsonNode getHostInfo() throws UnknownHostException {
        ObjectMapper json = new ObjectMapper();
        ObjectNode objectNode = json.createObjectNode();
        SystemInfo si = new SystemInfo();
        OperatingSystem operatingSystem = si.getOperatingSystem();
        OperatingSystemMXBean osBean = ManagementFactory.getOperatingSystemMXBean();
        HardwareAbstractionLayer hal = si.getHardware();

        NetworkParams networkParams = operatingSystem.getNetworkParams();
        String hostName = networkParams.getHostName();
        String ipv4DefaultGateway = networkParams.getIpv4DefaultGateway();

        // File Descriptor
        OperatingSystemMXBean operatingSystemMXBean = ManagementFactory.getOperatingSystemMXBean();
        long maxFileDescriptors = -1L;
        long openFileDescriptors = -1L;
        if (operatingSystemMXBean instanceof com.sun.management.UnixOperatingSystemMXBean) {
            maxFileDescriptors =
                    ((com.sun.management.UnixOperatingSystemMXBean) operatingSystemMXBean).getMaxFileDescriptorCount();
            openFileDescriptors =
                    ((com.sun.management.UnixOperatingSystemMXBean) operatingSystemMXBean).getOpenFileDescriptorCount();
        }

        // Agent Host Base Info
        ObjectNode hostInfoNode = json.createObjectNode();
        hostInfoNode
                .put("hostname", hostName)
                .put("os", osBean.getName())
                .put("arch", osBean.getArch())
                .put("ipv4Gateway", ipv4DefaultGateway)
                // .put("cpu_info", hal.getProcessor().getProcessorIdentifier().getMicroarchitecture())
                .put("cpu_info", hal.getProcessor().getProcessorIdentifier().getName())
                .put("logical_cores", hal.getProcessor().getLogicalProcessorCount())
                .put("physical_cores", hal.getProcessor().getPhysicalProcessorCount())
                .put("iPv4addr", getAgentHostIPv4addr(hal, ipv4DefaultGateway))
                .put(FILE_OPEN_DESCRIPTOR, openFileDescriptors)
                .put(FILE_TOTAL_DESCRIPTOR, maxFileDescriptors);
        objectNode.set(AGENT_BASE_INFO, hostInfoNode);

        objectNode.put(BOOT_TIME, operatingSystem.getSystemBootTime());
        // .put("upTimeSeconds", operatingSystem.getSystemUptime())

        // MEM
        GlobalMemory memory = hal.getMemory();
        objectNode.put(MEM_IDLE, memory.getAvailable()).put(MEM_TOTAL, memory.getTotal());
        // DISK
        List<OSFileStore> fileStores = operatingSystem.getFileSystem().getFileStores(true);
        ArrayNode diskArrayNode = json.createArrayNode();
        for (OSFileStore fileStore : fileStores) {
            if (fileStore.getTotalSpace() <= 1024 * 1024 * 1024) {
                continue;
            }
            ObjectNode disk = json.createObjectNode();

            disk.put(DISK_NAME, fileStore.getVolume());
            disk.put(DISK_TOTAL, fileStore.getTotalSpace());
            disk.put(DISK_IDLE, fileStore.getFreeSpace());

            diskArrayNode.add(disk);
        }
        objectNode.set(DISKS_BASE_INFO, diskArrayNode);
        // DISK IO init
        if (!initialized) {
            List<HWDiskStore> diskStores = si.getHardware().getDiskStores();
            previousReadBytes = new long[diskStores.size()];
            previousWriteBytes = new long[diskStores.size()];

            // init 0
            for (int i = 0; i < diskStores.size(); i++) {
                previousReadBytes[i] = 0L;
                previousWriteBytes[i] = 0L;
            }
            initialized = true; // tag
        }
        return objectNode;
    }