private static MachineStats GetMachineStats(int index) { var freeOutput = UnixBinaryOutputParser.GetOutput("free -m").Split("\n"); var diskOutput = UnixBinaryOutputParser.GetOutput("df").Split("\n"); var cpuOutput = UnixBinaryOutputParser.GetOutput("mpstat").Split("\n"); return(CheckOutputs(freeOutput, diskOutput, cpuOutput) ? null : CreateNewMachineStats(index, freeOutput, diskOutput, cpuOutput)); }
private static MachineStats CreateNewMachineStats(int index, IReadOnlyList <string> freeOutput, IReadOnlyList <string> diskOutput, IReadOnlyList <string> cpuOutput) { return(new MachineStats { Id = index, MachineName = Process.GetCurrentProcess().MachineName, TotalMemory = UnixBinaryOutputParser.GetTotalMemory(freeOutput), UsedMemory = UnixBinaryOutputParser.GetUsedMemory(freeOutput), FreeMemory = UnixBinaryOutputParser.GetFreeMemory(freeOutput), SharedMemory = UnixBinaryOutputParser.GetSharedMemory(freeOutput), CacheMemory = UnixBinaryOutputParser.GetCacheMemory(freeOutput), AvailableMemory = UnixBinaryOutputParser.GetAvailableMemory(freeOutput), DiskUsage = UnixBinaryOutputParser.GetDiskUsage(diskOutput), CpuUsage = UnixBinaryOutputParser.GetCpuUsage(cpuOutput), CpuIdle = UnixBinaryOutputParser.GetCpuIdle(cpuOutput), DateTime = DateTime.Now }); }