From 1520fc39a702c4839c5ad279b12ff142a361fc67 Mon Sep 17 00:00:00 2001 From: Philipp Lohse Date: Mon, 23 Feb 2015 14:51:28 +0100 Subject: [PATCH] implemented basic functions to read CPU-Load, RAM-Load and Uptime and write it to a Monyt-compatible Script based on Version 1.0.1 --- ServMon/javasysmon-0.3.5.jar | Bin 0 -> 52503 bytes ServMon/src/CpuLoad.java | 90 +++++++++++++++++++++++++++++++++++ ServMon/src/RamLoad.java | 33 +++++++++++++ ServMon/src/ServMon.java | 54 +++++++++++++++++++++ ServMon/src/UpTime.java | 14 ++++++ ServMon/src/Writer.java | 69 +++++++++++++++++++++++++++ 6 files changed, 260 insertions(+) create mode 100644 ServMon/javasysmon-0.3.5.jar create mode 100644 ServMon/src/CpuLoad.java create mode 100644 ServMon/src/RamLoad.java create mode 100644 ServMon/src/ServMon.java create mode 100644 ServMon/src/UpTime.java create mode 100644 ServMon/src/Writer.java diff --git a/ServMon/javasysmon-0.3.5.jar b/ServMon/javasysmon-0.3.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..f18715b726dcee57ad6fc045f6031c24536c09a2 GIT binary patch literal 52503 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 literal 0 HcmV?d00001 diff --git a/ServMon/src/CpuLoad.java b/ServMon/src/CpuLoad.java new file mode 100644 index 0000000..43d3163 --- /dev/null +++ b/ServMon/src/CpuLoad.java @@ -0,0 +1,90 @@ +import com.jezhumble.javasysmon.CpuTimes; +import com.jezhumble.javasysmon.JavaSysMon; + + +public class CpuLoad { + JavaSysMon monitor = new JavaSysMon(); + Integer seccounter; + String path; + CpuTimes Cpu1sec; + CpuTimes Cpu1min; + CpuTimes Cpu5min; + CpuTimes Cpu10min; + + float Avg1min; + float Avg5min; + float Avg10min; + + public CpuLoad(String path) { + this.path = path; + seccounter = 0; + Avg1min = -1; + Avg5min = -1; + Avg10min = -1; + } + + public float CalcAvg1sec() { + + CpuTimes Avg1sec = monitor.cpuTimes(); + + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + if(seccounter == 0) { + Cpu1min = monitor.cpuTimes(); + Cpu5min = monitor.cpuTimes(); + Cpu10min = monitor.cpuTimes(); + seccounter++; + return (monitor.cpuTimes().getCpuUsage(Avg1sec) * 100); + } + + if((seccounter % 60) == 0) { + Avg1min = monitor.cpuTimes().getCpuUsage(Cpu1min) * 100; + Cpu1min = monitor.cpuTimes(); + + // calculate Uptime + UpTime ut = new UpTime(); + + // calculate Ramload + RamLoad rm = new RamLoad(); + + // Write new data to file + Writer mywriter = new Writer(path, (int)Avg1min, (int)Avg5min, (int)Avg10min, ut.getUpTime(), rm.getFreemem(), rm.getTotmem()); + } + + if((seccounter % (60 * 5)) == 0) { + Avg5min = monitor.cpuTimes().getCpuUsage(Cpu5min) * 100; + Cpu5min = monitor.cpuTimes(); + } + + if(seccounter == 60 * 10) { + Avg10min = monitor.cpuTimes().getCpuUsage(Cpu10min) * 100; + Cpu10min = monitor.cpuTimes(); + seccounter = 0; + return (monitor.cpuTimes().getCpuUsage(Avg1sec) * 100); + } + + seccounter++; + return (monitor.cpuTimes().getCpuUsage(Avg1sec) * 100); + + } + + + public float getAvg1min() { + return Avg1min; + } + + public float getAvg5min() { + return Avg5min; + } + + public float getAvg10min() { + return Avg10min; + } + + + +} diff --git a/ServMon/src/RamLoad.java b/ServMon/src/RamLoad.java new file mode 100644 index 0000000..236f5c4 --- /dev/null +++ b/ServMon/src/RamLoad.java @@ -0,0 +1,33 @@ +import com.jezhumble.javasysmon.CpuTimes; +import com.jezhumble.javasysmon.JavaSysMon; +import com.jezhumble.javasysmon.MemoryStats; + + +public class RamLoad { + JavaSysMon monitor = new JavaSysMon(); + long freemem; + long totmem; + + + public RamLoad() { + + MemoryStats mem = monitor.physical(); + + freemem = mem.getFreeBytes() / 1000; + totmem = mem.getTotalBytes() / 1000; + + } + + + public long getFreemem() { + return freemem; + } + + + + public long getTotmem() { + return totmem; + } + + +} diff --git a/ServMon/src/ServMon.java b/ServMon/src/ServMon.java new file mode 100644 index 0000000..d53d5a8 --- /dev/null +++ b/ServMon/src/ServMon.java @@ -0,0 +1,54 @@ +import java.util.Scanner; +public class ServMon { + + public static void main(String[] args) { + + String path; + + System.out.println("--- Welcome to ServMon ---"); + System.out.println("To start, please enter absolute path to Monyt-file:"); + Scanner input = new Scanner(System.in); + path = input.next(); + input.close(); + + CpuLoad cl = new CpuLoad(path); + + while(1 == 1) { + + ClearConsole(); // Does not work on every Window-Machine + + System.out.println("Average 1sec: " + (int)cl.CalcAvg1sec() + " %"); + System.out.println("Average 1min: " + (int)cl.getAvg1min() + " %"); + System.out.println("Average 5min: " + (int)cl.getAvg5min() + " %"); + System.out.println("Average 10min: " + (int)cl.getAvg10min() + " %"); + System.out.println("-------------------- " + cl.seccounter + " ---"); + + } + + } + + public static void ClearConsole() { + + try + { + final String os = System.getProperty("os.name"); + + if (os.contains("Windows")) + { + Runtime.getRuntime().exec("cls"); + } + else + { + Runtime.getRuntime().exec("clear"); + } + } + catch (final Exception e) + { + // Handle any exceptions. + } + } + + +} + + diff --git a/ServMon/src/UpTime.java b/ServMon/src/UpTime.java new file mode 100644 index 0000000..51821f6 --- /dev/null +++ b/ServMon/src/UpTime.java @@ -0,0 +1,14 @@ +import com.jezhumble.javasysmon.JavaSysMon; + + +public class UpTime { + + public long getUpTime() { + + JavaSysMon monitor = new JavaSysMon(); + + long uptime = monitor.uptimeInSeconds(); + return uptime; + + } +} diff --git a/ServMon/src/Writer.java b/ServMon/src/Writer.java new file mode 100644 index 0000000..89140d3 --- /dev/null +++ b/ServMon/src/Writer.java @@ -0,0 +1,69 @@ + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; + + +public class Writer { + + public Writer(String path, Integer Avg1min, Integer Avg5min, Integer Avg15min, long uptime, long freemem, long totmem) { + + BufferedWriter writer = null; + try { + + File file = new File(path); + + // This will output the full path where the file will be written to... + System.out.println(file.getCanonicalPath()); + + writer = new BufferedWriter(new FileWriter(file)); + + + writer.write(" MONYT_SCRIPT_VERSION," + + "'distro' => 'not available yet'," + + "'kernel' => 'not available yet'," + + "'cpu' => 'not available yet'," + + "'cores' => 1 );"); + writer.newLine(); + writer.write("$sDistroName = '';"); + writer.newLine(); + writer.write("$sDistroVer = '';"); + writer.newLine(); + writer.write("die( json_encode($aCheck) );"); + writer.newLine(); + writer.write("}"); + writer.newLine(); + writer.write("die (\"{\\\"monyt\\\":\\\"1.0.1\\\",\\\"uptime\\\":\\\"" + uptime + " 00.00\\\",\\\"load\\\":\\\"" + Avg1min + ","+ Avg5min + "," + Avg15min + "\\\",\\\"total_memory\\\":\\\"" + totmem + "\\\",\\\"free_memory\\\":\\\"" + freemem + "\\\",\\\"hd\\\":[],\\\"net_tx\\\":0,\\\"net_rx\\\":0}\");"); + writer.newLine(); + writer.write("?>"); + + + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + + writer.close(); + } catch (Exception e) { + } + } + + + } +} \ No newline at end of file