`
aviva
  • 浏览: 89790 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

sigar学习之一

阅读更多

使用sigar其实很简单,首先要在项目中添加sigar.jar以及对应系统的

库文件(xp为例,添加pdh.dll、sigar-x86-winnt.dll、sigar-x86-winnt.lib)

 

sigar包以及库文件下载地址:http://download.csdn.net/source/2344017

 

//接口定义

public interface LoadInfo { 
 //获取cpu使用率
 public String getCpuInfo();
 // 获取系统内存使用量
 public String getRamInfo();
 //获取网络使用流量
 public String getNetworkInfo();
 //获取操作系统信息
 public String getSystemInfo();
 // 获取运行环境信息
 public String getRunLoadInfo();
 //获取虚拟机剩余内存
 public String getVmRamInfo();
}

 

 

//以下是接口的实现

import java.io.IOException;
import java.io.InputStream;
import java.text.DecimalFormat;
import java.util.Properties;

import org.hyperic.sigar.CpuPerc;
import org.hyperic.sigar.Mem;
import org.hyperic.sigar.NetInterfaceStat;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;
import org.hyperic.sigar.SigarNotImplementedException;

public class LoadInfoImpl implements LoadInfo {

 /**
  * 创建sigar对象用来获取系统信息
  */
 private Sigar sigar = new Sigar();;
 private CpuPerc cpuCerc;
 private Properties props = System.getProperties();
 private Mem mem;

 public String getCpuInfo() {
  try {
   /**
    * 获取cpu信息
    */
   cpuCerc = sigar.getCpuPerc();
   /**
    * 保留两位小数
    */
   DecimalFormat df = new DecimalFormat("#.00");
   /**
    * 如果cpu使用率为零时,不保留小数位
    */
   if (cpuCerc.getCombined() == 0) {
    return 0 + "%";
   } else {
    return df.format(cpuCerc.getCombined() * 100) + "%";
   }
  } catch (SigarException e) {
   e.printStackTrace();
  }
  return String.valueOf(cpuCerc.getCombined());
 }
 
 public String getRamInfo() {
  try {
   /**
    * 获取系统内存信息
    */
   mem = sigar.getMem();
  } catch (SigarException e) {
   e.printStackTrace();
  }
  /**
   * 返回系统内存使用量
   */
  return mem.getUsed() / 1024 / 1024 + "M";
 }

 public String getNetworkInfo() {
  String ifNames[]=null;
  String txbyte=null;
  try {
   ifNames = sigar.getNetInterfaceList();
  } catch (SigarException e2) {
   e2.printStackTrace();
  }
   String name = ifNames[0];
   try {
    /**
     * 获取网络流量
     */
    NetInterfaceStat ifstat = sigar.getNetInterfaceStat(name);
    /**
     * 获取发送的总字节数
     */
    txbyte=ifstat.getTxBytes()+"byte";
   } catch (SigarNotImplementedException e) {
   } catch (SigarException e) {
    System.out.println(e.getMessage());
   }
  return txbyte;
 }

 public String getSystemInfo() {
  /**
   * 获取操作系统名称
   */
  return props.getProperty("os.name");
 }

 public String getRunLoadInfo() {
  /**
   * 获取运行环境信息
   */
  String runload=props.getProperty("java.vm.name");
  return runload;
 }

 public String getVmRamInfo() {
  /**
   * 获取虚拟机剩余内存
   */
  return Runtime.getRuntime().freeMemory() / (1024 * 1024) + "M";
 }
}

分享到:
评论
3 楼 valiant303 2014-06-17  
我想监控远程linux的系统参数 该怎么配置 ?我已经能正常监控本机的参数了。就差个远程阿里云的服务器
2 楼 他大姨妈 2013-08-28  
这种方式监控系统的话加上webservice,可以实现类似snmp4j的功能,snmp4j可以监控远程系统,这个不知道可不可以,就算它只能监控本地系统,那么配合上webservice就可以实现远程监控了。
1 楼 pangchaofu 2012-07-15  
学习了,mark一下。

相关推荐

    export.sugar百度大屏sugar模版下载.zip

    export.sugar百度大屏sugar模版下载

    SugarCRM For Dummies

    I started this book with the intention of bringing a new side of SugarCRM to light. Since I began working at SugarCRM, I saw the flexibility and extensibility that the application could provide. I ...

    sugarcrm developer guide en

    sugarcrm developer guide en sugarcrm developer guide en sugarcrm developer guide en

    Sugar QCT_SP

    Sugar QCT_SP

    sugar.zip

    sugar.zip,使用MotionLayout实现高德地图bottomSheets效果

    Soft Sugar

    Soft Sugar

    SugarCRM v3.5.1c 简体中文版

    SugarCRM v3.5.1c 简体中文版 See the Installation Guide found on SugarForge.org for installation steps of Sugar Open Source. http://www.sugarcrm.com/crm/documentation.html How to Install a Sugar Patch ...

    SugarCRM

    packt_用开源项目快速建站实践丛书之SugarCRM

    SugarCRM企业级CRMv6.5.10

    Sugar是一个价格合理并且容易使用的企业级CRM,Sugar的设计初衷是为了帮助您的企业于千载客户沟通,共享销售信息,促成交易以及保持客户开心。 数千家企业每天使用Sugar去管理销售,市场和客户支持。 作为一个开源,...

    SugarCRM傻瓜教程

    sugarcrm原版教程,国内现在sugarcrm的教程较少,网页上很多翻译粗看比较难理解,如果要系统了解,这个是很不错的教程。

    SugarCRM各版本功能说明

    SugarCRM ver 说明 SugarCRM Community Edition SugarCRM Professinal Edition SugarCRM Enterprise Edition

    Android数据库框架——Sugar

    Android数据库框架——Sugar

    SugarCRM6.2.0的中文包

    第1步:记事本打开.\htdocs\sugarcrm下config.php, 找到行'en_us' => 'US English',复制该行,增加一行修改为 'zh_cn' => '简体中文(中国)';最好用ultraEdit打开后,保存,若不符合php语法,就会服务器不能访问!...

    sugar操作指引

    sugar操作指引sugar操作指引sugar操作指引sugar操作指引sugar操作指引sugar操作指引sugar操作指引sugar操作指引sugar操作指引sugar操作指引sugar操作指引

    SugarCRM 6.5.9

    My Portal模块允许管理员和用户区连接其他的网站和web应用程序到Sugar User Interface,让sugar成为它的用户的一个一个统一的接口。 sugar时间建立在包括php开发环境,Mysql关系数据库,apache或者IIS web服务器和...

    Sugarcrm开发指南

    Sugarcrm开发指南英文版共享 很好的crm应用

    sugar-toolkit-gtk3:Sugar学习环境,活动工具包,GTK 3

    糖工具包Sugar Toolkit提供服务和一组GTK +小部件,以在基于Linux的计算机上构建活动和其他Sugar组件。 这是Sugar Toolkit的GTK + 3绑定。 在Debian或Ubuntu上安装安装时自动完成。 要在没有Sugar桌面的情况下单独...

    前端项目-sugar.zip

    前端项目-sugar,用于处理本机对象的JavaScript库。

    SugarCRM 客户关系管理系统 v6.4.3

    SugarCRM开源版是一款完全开放源代码的免费软件,具有 界面活泼、简单易学的特点。美国SugarCRM公司是一间创立时间不到三年、但迅速在全球范围取得一定影响的客户关系管理软件厂商。其基本的商业策略是:一边销售...

    sugar.jar jar包.rar

    sugar Android数据库框架jar包,欢迎同学们下载,sugar 框架用起来方便很多

Global site tag (gtag.js) - Google Analytics