private void monitor(PerfMonLib perfMon) { int interval = 5; // seconds while (!_stopping) { PerfData data = perfMon.GetValues(); DateTime now = DateTime.Now; string timestamp = now.ToString("yyyy-MM-ddTHH:mm:ss") + now.ToString("zzz").Replace(":", ""); string message = "{" + CreateJsonItem("device", Environment.MachineName) + "," + CreateJsonItem("timestamp", timestamp) + "," + CreateJsonItem("cpu", data.ProcessorUtilization) + "," + CreateJsonItem("memory", data.AvailableMemoryMB) + "," + CreateJsonItem("process", data.ActiveProcess) + "," + CreateJsonItem("interval", interval) + "}"; Console.WriteLine(message); string path = Path.Combine(_dataDir, timestamp.Replace("-", "").Replace(":", "") + ".json"); File.WriteAllText(path, message, _encoding); Thread.Sleep(interval * 1000); } }
private void monitor() { try { using (PerfMonLib perfMon = new PerfMonLib()) { monitor(perfMon); } } catch (Exception e) { log(e); } finally { _monitorStopped = true; } }