Exemple #1
0
 public ActionResult <List <Server_Resource_Info> > GetCpuPerProcess()
 {
     try
     {
         using (var context = new ServerResourcesContext())
         {
             var processCollection = context.Server_Resource_Info
                                     .Include(SRI => SRI.Sample_Time)
                                     .Include(SRI => SRI.Resource_Type)
                                     .Include(SRI => SRI.Process)
                                     .Include(SRI => SRI.Server_Resource_Unit)
                                     .Where(SRI => SRI.Resource_Type_FK == 2 &&
                                            SRI.Process_FK != null);
             var output = processCollection.Where(PC => PC.Sample_Time.Time > (DateTime.Now - TimeSpan.FromSeconds(70)));
             if (processCollection.Count() > 0)
             {
                 return(Ok(output.ToList()));
             }
         }
         throw new FieldAccessException("Could not find running processes");
     }
     catch (Exception e)
     {
         return(BadRequest(e.Message));
     }
 }
        static void InsertProcess(ProcessInformation proc_info)
        {
            var proc = new ServerResourcesDataAccess.Process()
            {
                Name   = proc_info.Name,
                Status = proc_info.Status,
                PID    = proc_info.Pid
            };

            using (var context = new ServerResourcesContext())
            {
                var associated_proc = context.Process.Where(P => P.Name == proc.Name).SingleOrDefault();
                proc.Server_User_FK = context.Server_User.Where(SU => SU.Name == proc_info.User).SingleOrDefault().Id;

                if (associated_proc != null)
                {
                    associated_proc.PID            = proc.PID;
                    associated_proc.Server_User_FK = proc.Server_User_FK;
                }
                else
                {
                    context.Add(proc);
                }

                context.SaveChanges();
            }
        }
 static void InsertProcessSpecificUsage(TopProcessOutput usage_info)
 {
     foreach (var proc_info in usage_info.ProcessesSpecificUsage)
     {
         if (proc_info.Status == "R")
         {
             InsertProcess(proc_info);
             using (var context = new ServerResourcesContext())
             {
                 context.Server_Resource_Info.Add(new Server_Resource_Info()
                 {
                     Value                   = proc_info.CpuUsage,
                     Sample_Time_FK          = context.Sample_Time.Last().Id,
                     Server_Resource_Unit_FK = context.Server_Resource_Unit.Where(SRU => SRU.ShortName == "PRCENT").SingleOrDefault().Id,
                     Process_FK              = context.Process.Where(P => P.PID == proc_info.Pid).SingleOrDefault().Id,
                     Resource_Type_FK        = context.Resource_Type.Where(RT => RT.Short_Name == "CPU_USE").SingleOrDefault().Id
                 });
                 context.Server_Resource_Info.Add(new Server_Resource_Info()
                 {
                     Value                   = proc_info.RamUsage,
                     Sample_Time_FK          = context.Sample_Time.Last().Id,
                     Server_Resource_Unit_FK = context.Server_Resource_Unit.Where(SRU => SRU.ShortName == "PRCENT").SingleOrDefault().Id,
                     Process_FK              = context.Process.Where(P => P.PID == proc_info.Pid).SingleOrDefault().Id,
                     Resource_Type_FK        = context.Resource_Type.Where(RT => RT.Short_Name == "RAM_USE").SingleOrDefault().Id
                 });
                 context.SaveChanges();
             }
         }
     }
 }
 static void InsertSamplingTime(DateTime samplingTime)
 {
     using (var context = new ServerResourcesContext())
     {
         context.Sample_Time.Add(new Sample_Time()
         {
             Time = samplingTime
         });
         context.SaveChanges();
     }
 }
Exemple #5
0
        public ActionResult <Server_Resource_Info> GetCpu()
        {
            try
            {
                using (var context = new ServerResourcesContext())
                {
                    var lastCpuTemp = context.Server_Resource_Info
                                      .Include(SRI => SRI.Resource_Type)
                                      .Include(SRI => SRI.Sample_Time)
                                      .Include(SRI => SRI.Server_Resource_Unit)
                                      .Where(SRI => SRI.Process_FK == null && SRI.Resource_Type_FK == 3)
                                      .OrderBy(SRI => SRI.Id)
                                      .LastOrDefault();
                    if (lastCpuTemp.Sample_Time.Time >= (DateTime.Now - TimeSpan.FromSeconds(5)))
                    {
                        return(Ok(lastCpuTemp));
                    }
                }

                var sensorOutput = _sensorsHelper.GetCurrentSensorsProcessReadings();

                double total_temps = 0;
                sensorOutput.Cpus_Temp.ToList().ForEach(c => total_temps += c.Cpu_Temp);
                var cpu_temp = (total_temps / sensorOutput.Cpus_Temp.Count());

                var lastCalculatedCpuTemp = new Server_Resource_Info()
                {
                    Id                      = 0,
                    Value                   = cpu_temp,
                    Sample_Time_FK          = 0,
                    Server_Resource_Unit_FK = 2,
                    Sample_Time             = new Sample_Time()
                    {
                        Id = 0, Time = DateTime.Now
                    },
                    Resource_Type = new Resource_Type()
                    {
                        Id = 0, Short_Name = "CPU_TEMP"
                    },
                    Server_Resource_Unit = new Server_Resource_Unit()
                    {
                        Id = 0, Unit = "°C", ShortName = "TEMP"
                    }
                };

                return(Ok(lastCalculatedCpuTemp));
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
        static void ManageOldData(DateTime samplingTime)
        {
            using (var context = new ServerResourcesContext())
            {
                var oldest_sample = context.Sample_Time.OrderBy(ST => ST.Time).First();

                if (oldest_sample.Time < (samplingTime - TimeSpan.FromMinutes(60)))
                {
                    context.Remove(oldest_sample);
                }
                context.SaveChanges();
            }
        }
Exemple #7
0
        public ActionResult <Server_Resource_Info> GetCpu()
        {
            var request = new HttpRequestMessage();

            try
            {
                using (var context = new ServerResourcesContext())
                {
                    var lastCpuUsage = context.Server_Resource_Info
                                       .Include(SRI => SRI.Resource_Type)
                                       .Include(SRI => SRI.Sample_Time)
                                       .Include(SRI => SRI.Server_Resource_Unit)
                                       .Where(SRI => SRI.Process_FK == null && SRI.Resource_Type_FK == 2)
                                       .OrderBy(SRI => SRI.Id)
                                       .LastOrDefault();

                    if (lastCpuUsage.Sample_Time.Time >= (DateTime.Now - TimeSpan.FromSeconds(2)))
                    {
                        return(Ok(lastCpuUsage));
                    }
                }

                var topOutput = _topHelper.GetCurrentTopProcessReadings();
                var lastCalculatedCpuUsage = new Server_Resource_Info()
                {
                    Id                      = 0,
                    Value                   = topOutput.TotalCpuUsage,
                    Sample_Time_FK          = 0,
                    Server_Resource_Unit_FK = 2,
                    Sample_Time             = new Sample_Time()
                    {
                        Id = 0, Time = DateTime.Now
                    },
                    Resource_Type = new Resource_Type()
                    {
                        Id = 0, Short_Name = "CPU_USE"
                    },
                    Server_Resource_Unit = new Server_Resource_Unit()
                    {
                        Id = 0, Unit = "%", ShortName = "PRCENT"
                    }
                };

                return(Ok(lastCalculatedCpuUsage));
            }
            catch (Exception e)
            {
                //return request.CreateResponse(HttpStatusCode.BadRequest, e.Message);
                return(BadRequest(e.Message));
            }
        }
        static void InsertTemperature(SensorsProcessOutput temperature_info)
        {
            double total_temps = 0;

            temperature_info.Cpus_Temp.ToList().ForEach(c => total_temps += c.Cpu_Temp);
            var cpu_temp = (total_temps / temperature_info.Cpus_Temp.Count());

            using (var context = new ServerResourcesContext())
            {
                context.Server_Resource_Info.Add(new Server_Resource_Info()
                {
                    Value                   = cpu_temp,
                    Sample_Time_FK          = context.Sample_Time.Last().Id,
                    Server_Resource_Unit_FK = context.Server_Resource_Unit.Where(SRU => SRU.ShortName == "TEMP").SingleOrDefault().Id,
                    Process_FK              = null,
                    Resource_Type_FK        = context.Resource_Type.Where(RT => RT.Short_Name == "CPU_TEMP").SingleOrDefault().Id
                });;
                context.SaveChanges();
            }
        }
        static void Main(string[] args)
        {
            using (var context = new ServerResourcesContext())
            {
                var test = context.Server_Resource_Info
                           .Include(sri => sri.Sample_Time)
                           .FirstOrDefault().Sample_Time.Time;
                var test2 = context.Server_Resource_Info
                            .Include(sri => sri.Server_Resource_Unit)
                            .FirstOrDefault().Server_Resource_Unit.Unit;
                Console.WriteLine(test);
                Console.WriteLine(test2);
            }

            Console.WriteLine(DateTime.Now > (DateTime.Now - TimeSpan.FromMinutes(1)));


            Console.WriteLine("Added entities");
            Console.ReadLine();
        }
 static void InsertTotalUsages(TopProcessOutput usage_info)
 {
     using (var context = new ServerResourcesContext())
     {
         context.Server_Resource_Info.Add(new Server_Resource_Info()
         {
             Value                   = usage_info.TotalCpuUsage,
             Sample_Time_FK          = context.Sample_Time.Last().Id,
             Server_Resource_Unit_FK = context.Server_Resource_Unit.Where(SRU => SRU.ShortName == "PRCENT").SingleOrDefault().Id,
             Process_FK              = null,
             Resource_Type_FK        = context.Resource_Type.Where(RT => RT.Short_Name == "CPU_USE").SingleOrDefault().Id
         });
         context.Server_Resource_Info.Add(new Server_Resource_Info()
         {
             Value                   = usage_info.TotalRamUsage,
             Sample_Time_FK          = context.Sample_Time.Last().Id,
             Server_Resource_Unit_FK = context.Server_Resource_Unit.Where(SRU => SRU.ShortName == "PRCENT").SingleOrDefault().Id,
             Process_FK              = null,
             Resource_Type_FK        = context.Resource_Type.Where(RT => RT.Short_Name == "RAM_USE").SingleOrDefault().Id
         });
         context.SaveChanges();
     }
 }