1.import java.io.IOException;
2.import java.io.PrintWriter;
3.
4.import javax.servlet.ServletException;
5.import javax.servlet.http.HttpServlet;
6.import javax.servlet.http.HttpServletRequest;
7.import javax.servlet.http.HttpServletResponse;
8.
9.import org.hyperic.sigar.Cpu;
10.import org.hyperic.sigar.CpuPerc;
11.import org.hyperic.sigar.Mem;
12.import org.hyperic.sigar.Sigar;
13.import org.hyperic.sigar.Swap;
14.
15.public class SigarServlet extends HttpServlet {
16.
17. public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
18.
19. try {
20. Sigar sigar = new Sigar();
21. CpuPerc perc = sigar.getCpuPerc();
22. Mem mem = sigar.getMem();
23. Swap swap = sigar.getSwap();
24.
25. int cpuUsage = (int)perc.getCombined();
26. int memFree = (int)(mem.getFree()/(1024l*1024l));
27. int memTotal = (int)(mem.getTotal()/(1024l*1024l));
28.
29. int pageFileFree = (int)(swap.getPageOut()/(1024l*1024l));
30. int pageFileTotal = (int)(swap.getPageIn()/(1024l*1024l));
31. int swapFree = (int)(swap.getFree()/(1024l*1024l));
32. int swapTotal = (int)(swap.getTotal()/(1024l*1024l));
33.
34.
35. response.setContentType("text/html;charset=GB2312");
36. PrintWriter out = response.getWriter();
37.
38. Cpu cpu = sigar.getCpu();
39.
40. out.println("CPU Usage:"+perc.getCombined());
41. out.println("<br/>");
42. out.println("Memory Free:"+memFree);
43. out.println("<br/>");
44. out.println("Memory Total:"+memTotal);
45. out.println("<br/>");
46. out.println("Swap Free:"+swapFree);
47. out.println("<br/>");
48. out.println("Swap Total:"+swapTotal);
49. out.println("<br/>");
50. out.println("Page Free:"+pageFileFree);
51. out.println("<br/>");
52. out.println("Page Total:"+pageFileTotal);
53.
54. out.close();
55.
56. } catch (Exception e) {
57.
58. }
59. }
60.
61.}
配置:
1.<?xml version="1.0" encoding="UTF-8"?> 2.<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 3. <display-name>sigar</display-name> 4. <servlet> 5. <servlet-name>sigarServlet</servlet-name> 6. <servlet-class>sigar.SigarServlet</servlet-class> 7. </servlet> 8. 9. <servlet-mapping> 10. <servlet-name>sigarServlet</servlet-name> 11. <url-pattern>/sigar</url-pattern> 12. </servlet-mapping> 13. 14. <welcome-file-list> 15. <welcome-file>index.html</welcome-file> 16. <welcome-file>index.htm</welcome-file> 17. <welcome-file>index.jsp</welcome-file> 18. <welcome-file>default.html</welcome-file> 19. <welcome-file>default.htm</welcome-file> 20. <welcome-file>default.jsp</welcome-file> 21. </welcome-file-list> 22.</web-app>
需要的jar:
.sigar_shellrc
pdh.dll
sigar-1.5.0.1.jar
sigar-x86-winnt.dll
sigar-x86-winnt.lib
测试结果:
访问http://127.0.0.1:8080/sigar/sigar
CPU Usage:0.22815533980582525
Memory Free:863
Memory Total:2046
Swap Free:2048
Swap Total:4330
Page Free:0
Page Total:0
测试系统:windows Vista
注意其他系统需要引入sigar相关的库文件,具体看看sigar的网站:http://hyperic-hq.sourceforge.net/