예제 #1
0
        static List <AverageLoadVm> GetAvgByMinute(DateTime start, DateTime end, List <Checkin> checkins)
        {
            var ts      = end - start;
            var minutes = ts.Minutes;

            var list = new List <AverageLoadVm>();



            for (var i = minutes * -1; i < 0; i++)
            {
                var timeIndex = end.AddMinutes(i);

                var rv = checkins.Where(c => c.SampleTime > timeIndex &&
                                        c.SampleTime < timeIndex.AddMinutes(1)).ToList();

                if (!rv.Any())
                {
                    continue;
                }

                var avg = new AverageLoadVm()
                {
                    AvgCpuLoad = rv.Average(c => c.CpuUtilization),
                    AvgMemLoad = rv.Average(c => c.RamUtilization),
                    TimeIndex  = timeIndex,
                    Increment  = 1
                };

                list.Add(avg);
            }

            return(list);
        }
예제 #2
0
        private static List <AverageLoadVm> GetLast24Hours(DateTime time, List <Checkin> checkins)
        {
            var list = new List <AverageLoadVm>();

            for (var i = -24; i < 0; i++)
            {
                var timeIndex = time.AddHours(i);

                var rv = checkins.Where(c => c.SampleTime > timeIndex &&
                                        c.SampleTime < timeIndex.AddHours(1)).ToList();


                if (!rv.Any())
                {
                    continue;
                }

                var avg = new AverageLoadVm()
                {
                    AvgCpuLoad = rv.Average(c => c.CpuUtilization),
                    AvgMemLoad = rv.Average(c => c.RamUtilization),
                    TimeIndex  = timeIndex,
                    Increment  = 1
                };

                list.Add(avg);
            }

            return(list);
        }
예제 #3
0
        static List <AverageLoadVm> GetAvgByHour(DateTime start, DateTime end, List <Checkin> checkins)
        {
            var ts      = end - start;
            var minutes = ts.Minutes % 60;
            var hours   = ts.Hours;

            List <AverageLoadVm> list = new List <AverageLoadVm>();

            var first = new AverageLoadVm()
            {
                AvgCpuLoad = checkins.Where(c => c.SampleTime > start &&
                                            c.SampleTime < start.AddMinutes(minutes))?
                             .Average(c => c.CpuUtilization) ?? 0.00D,
                AvgMemLoad = checkins.Where(c => c.SampleTime > start &&
                                            c.SampleTime < start.AddMinutes(minutes))?
                             .Average(c => c.RamUtilization) ?? 0.00D,
                TimeIndex = start,
                Increment = minutes
            };

            list.Add(first);

            for (var i = hours * -1; i < 0; i++)
            {
                var timeIndex = end.AddHours(i);

                var rv = checkins.Where(c => c.SampleTime > timeIndex &&
                                        c.SampleTime < timeIndex.AddHours(1)).ToList();

                if (!rv.Any())
                {
                    continue;
                }


                var avg = new AverageLoadVm()
                {
                    AvgCpuLoad = rv.Average(c => c.CpuUtilization),
                    AvgMemLoad = rv.Average(c => c.RamUtilization),
                    TimeIndex  = timeIndex,
                    Increment  = 60
                };

                list.Add(avg);
            }

            return(list);
        }