5 <title>Psensor Server Monitoring</title>
7 <link type="text/css" href="style.css" rel="stylesheet" />
8 <script type="text/javascript" src="jquery.js"></script>
11 function format_mem_size(s) {
12 var mo_bytes = 1024 * 1024;
13 var go_bytes = 1024 * mo_bytes;
16 var k = Math.round((s / 1024) % 1024);
17 var m = Math.round((s / (1024*1024)) % 1024);
18 var g = Math.round(s / (1024*1024*1024));
35 $(document).ready(function() {
36 $.getJSON("/api/1.0/sensors", function(data) {
37 $.each(data, function(i, item) {
38 var sname = item["name"];
39 var svalue = item["last_measure"]["value"];
40 var smin = item["min"];
41 var smax = item["max"];
42 var stype = item["type"];
43 var stype_str = "N/A";
48 } else if (stype & 0x0200) {
50 } else if (stype & 0x0400) {
52 } else if (stype & 0x0800) {
57 stype_str += " Temperature";
59 } else if (stype & 0x0002) {
63 $("#sensors").append("<tr><td>"+sname+"</td><td>"+svalue+unit+"</td><td>"+smin+unit+"</td><td>"+smax+unit+"</td><td>"+stype_str+"</td></tr>");
67 $.getJSON("/api/1.0/sysinfo", function(data) {
68 var load = Math.round(data["load"] * 100);
69 var load_1 = Math.round(data["load_1"]*1000)/1000;
70 var load_5 = Math.round(data["load_5"]*1000)/1000;
71 var load_15 = Math.round(data["load_15"]*1000)/1000;
72 var uptime = data["uptime"];
73 var uptime_s = uptime % 60;
74 var uptime_mn = Math.floor((uptime / 60) % 60);
75 var uptime_h = Math.floor((uptime / (60*60)) % 24);
76 var uptime_d = Math.floor(uptime / (60*60*24));
78 $("#cpu").append("<tr><td>"+load+"%</td><td>"+load_1+"</td><td>"+load_5+"</td><td>"+load_15+"</td></tr>");
80 $("#uptime").append(uptime_d+"d "+uptime_h+"h "+uptime_mn+"mn");
82 var ram = data["ram"];
83 var swap = data["swap"];
84 var mu = data["mem_unit"];
86 var ramtotal = ram["total"]*mu;
87 var ramfree = ram["free"]*mu;
88 var ramused = (ram["total"] - ram["free"])*mu;
89 var ramshared = ram["shared"]*mu;
90 var rambuffer = ram["buffer"]*mu;
93 $("#memory").append("<td>"+format_mem_size(ramtotal)+"</td>"
94 +"<td>"+format_mem_size(ramused)+"</td>"
95 +"<td>"+format_mem_size(ramfree)+"</td>"
96 +"<td>"+format_mem_size(ramshared)+"</td>"
97 +"<td>"+format_mem_size(rambuffer)+"</td>");
99 $("#swap").append("<td>"+format_mem_size(swap["total"]*mu)+"</td>"
100 +"<td>"+format_mem_size(swap["total"]*mu-swap["free"]*mu)+"</td>"
101 +"<td>"+format_mem_size(swap["free"]*mu)+"</td>");
103 var netdata = data["net"];
104 $.each(netdata, function(i, item) {
105 $("#net").append("<tr><td>"+item["name"]+"</td>"
106 +"<td>"+format_mem_size(item["bytes_in"])+"</td>"
107 +"<td>"+format_mem_size(item["bytes_out"])+"</td></tr>");
116 <div class='page-header'>
117 <h1>Psensor Server Monitoring</h1>
120 <div class='page-content'>
121 <p id='uptime'><strong>Uptime</strong>: </p>
125 <table id='cpu' border='0' cellspacing='0' cellpadding='0'>
128 <th>Current usage</th>
139 <table border='0' cellspacing='0' cellpadding='0'>
151 <tr id='memory'><td>Memory</td></tr>
152 <tr id='swap'><td>Swap</td></tr>
158 <table id='net' border='0' cellspacing='0' cellpadding='0'>
172 <table id='sensors' border='0' cellspacing='0' cellpadding='0'>
173 <thead><tr><th>Name</th><th>Value</th><th>Min</th><th>Max</th><th>Type</th></thead>
179 <div class='page-footer'>
180 <a href='http://wpitchoune.net/psensor'>Psensor Server</a> - (c)2011 jeanfi@gmail.com