java gateway监控cpu使用率

1. 下载zabbix java gateway源码。

2. 修改zabbix-java源码

3.修改JMXItemChecker,增加如下代码:

 

/**
     * @des get cpu usage
     * @return
     */
    private float getCpuUsage()
    {
        float cpuUsage = 0;
       
        try
        {
            ObjectName operateObjectName = new ObjectName("java.lang:type=OperatingSystem");
            ObjectName runtimeObjName = new ObjectName("java.lang:type=Runtime"); 
            long processCpuTime = Long.parseLong(mbsc.getAttribute(operateObjectName, "ProcessCpuTime").toString());
           
            int availableProcessors = Integer.parseInt(mbsc.getAttribute(operateObjectName, "AvailableProcessors").toString());
           
            long upTime = Long.parseLong(mbsc.getAttribute(runtimeObjName, "Uptime").toString());
           
            logger.info("===2======processCpuTime: " + processCpuTime);
            logger.info("===2=====upTime: " + upTime);
           
            if (prevUpTime > 0L && upTime > prevUpTime)
            {
                logger.info("===3=======");
                long elapsedCpu  = processCpuTime - prevProcessCpuTime;
                long elapsedTime = upTime - prevUpTime;
                 
                // cpuUsage could go higher than 100% because elapsedTime
                // and elapsedCpu are not fetched simultaneously. Limit to
                // 99% to avoid Plotter showing a scale from 0% to 200%.
                cpuUsage = Math.min(99F, elapsedCpu / (elapsedTime * 10000F * availableProcessors));
                logger.info("===2=====cpuUsage: " + cpuUsage);
            }
            logger.info("===4=======");
            prevUpTime = upTime;
            prevProcessCpuTime = processCpuTime;
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
       
        return cpuUsage;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值