public override Task <List <Node.MemoryUtilization> > GetMemoryUtilization(Node node, DateTime?start, DateTime?end, int?pointCount = null) { var wNode = _wmiNodes.FirstOrDefault(x => x.Id == node.Id); if (wNode == null) { return(Task.FromResult(new List <Node.MemoryUtilization>())); } Node.MemoryUtilization startVal = null; if (start.HasValue) { startVal = new Node.MemoryUtilization { DateTime = start.Value }; } Node.MemoryUtilization endVal = null; if (end.HasValue) { endVal = new Node.MemoryUtilization { DateTime = end.Value }; } return(FilterHistory(wNode.MemoryHistory, startVal, endVal, new MemoryUtilComparer())); }
private void PollMemoryUtilization(WmiNode wmiNode) { var node = wmiNode.Node; const string query = @"select AvailableKBytes from Win32_PerfFormattedData_PerfOS_Memory"; using (var q = Wmi.Query(node.Name, query)) { var data = q.GetFirstResult(); if (data == null) return; var available = data.AvailableKBytes * 1024; node.MemoryUsed = node.TotalMemory - available; var utilization = new Node.MemoryUtilization { DateTime = DateTime.UtcNow, MaxMemoryUsed = node.MemoryUsed, AvgMemoryUsed = node.MemoryUsed }; wmiNode.AddMemoryUtilization(utilization); } }