private async Task PollCpuUtilization()
            {
                const string query = @"select 
                    PercentProcessorTime 
                    from Win32_PerfFormattedData_PerfOS_Processor
                    where Name = '_Total'";

                using (var q = Wmi.Query(Name, query))
                {
                    var data = await q.GetFirstResult();

                    if (data == null)
                    {
                        return;
                    }

                    CPULoad = (short)data.PercentProcessorTime;
                    var cpuUtilization = new CPUUtilization
                    {
                        DateTime = DateTime.UtcNow,
                        MaxLoad  = CPULoad,
                        AvgLoad  = CPULoad
                    };
                    AddCpuUtilization(cpuUtilization);
                }
            }
Example #2
0
            private async Task PollCpuUtilization()
            {
                const string query = @"
SELECT PercentProcessorTime 
  FROM Win32_PerfFormattedData_PerfOS_Processor
 WHERE Name = '_Total'";

                using (var q = Wmi.Query(Name, query))
                {
                    var data = await q.GetFirstResult();

                    if (data == null)
                    {
                        return;
                    }

                    CPULoad = (short)data.PercentProcessorTime;
                    var cpuUtilization = new CPUUtilization
                    {
                        DateEpoch = DateTime.UtcNow.ToEpochTime(),
                        AvgLoad   = CPULoad
                    };
                    UpdateHistoryStorage(CPUHistory, cpuUtilization);
                }
            }
            private async Task PollCpuUtilizationAsync()
            {
                var query = IsVMHost
                    ? "SELECT Name, Timestamp_Sys100NS, PercentTotalRunTime FROM Win32_PerfRawData_HvStats_HyperVHypervisorLogicalProcessor WHERE Name = '_Total'"
                    : "SELECT Name, Timestamp_Sys100NS, PercentProcessorTime FROM Win32_PerfRawData_PerfOS_Processor WHERE Name = '_Total'";

                var property = IsVMHost
                    ? "PercentTotalRunTime"
                    : "PercentProcessorTime";

                using (var q = Wmi.Query(Endpoint, query))
                {
                    var data = await q.GetFirstResultAsync().ConfigureAwait(false);

                    if (data == null)
                    {
                        return;
                    }

                    var perfData = new PerfRawData(this, data);

                    if (IsVMHost)
                    {
                        CPULoad = (short)(perfData.GetCalculatedValue(property, 100D) / NumberOfLogicalProcessors);
                    }
                    else
                    {
                        CPULoad = (short)Math.Round((1 - perfData.GetCalculatedValue(property)) * 100);
                    }

                    var cpuUtilization = new CPUUtilization
                    {
                        DateEpoch = DateTime.UtcNow.ToEpochTime(),
                        AvgLoad   = CPULoad
                    };
                    UpdateHistoryStorage(CPUHistory, cpuUtilization);
                }
            }
            private async Task PollCpuUtilization()
            {
                const string query = @"
SELECT PercentProcessorTime 
  FROM Win32_PerfFormattedData_PerfOS_Processor
 WHERE Name = '_Total'";

                using (var q = Wmi.Query(Name, query))
                {
                    var data = await q.GetFirstResult();
                    if (data == null)
                        return;
                
                    CPULoad = (short)data.PercentProcessorTime;
                    var cpuUtilization = new CPUUtilization
                    {
                        DateEpoch = DateTime.UtcNow.ToEpochTime(),
                        AvgLoad = CPULoad
                    };
                    UpdateHistoryStorage(CPUHistory, cpuUtilization);
                }
            }
            private async Task PollCpuUtilization()
            {
                const string query = @"select 
                    PercentProcessorTime 
                    from Win32_PerfFormattedData_PerfOS_Processor
                    where Name = '_Total'";

                using (var q = Wmi.Query(Name, query))
                {
                    var data = await q.GetFirstResult();
                    if (data == null)
                        return;
                
                    CPULoad = (short)data.PercentProcessorTime;
                    var cpuUtilization = new CPUUtilization
                    {
                        DateTime = DateTime.UtcNow,
                        MaxLoad = CPULoad,
                        AvgLoad = CPULoad
                    };
                    AddCpuUtilization(cpuUtilization);
                }
            }
Example #6
0
 public void AddCpuUtilization(CPUUtilization cpuUtilization)
 {
     UpdateHistoryStorage(CPUHistory, cpuUtilization, x => x.DateTime);
 }