Пример #1
0
        public Task Execute(IJobExecutionContext context)
        {
            DateTimeOffset     toTime   = DateTimeOffset.UtcNow;
            DateTimeOffset     fromTime = _repositoryCpu.LastTime();
            IList <AgentModel> agents   = _repositoryAgent.GetAll();


            foreach (var agent in agents)
            {
                if (agent.Status == true)
                {
                    AllCpuMetricsApiResponse allCpuMetrics = _client.GetAllCpuMetrics(new GetAllCpuMetricsApiRequest
                    {
                        FromTime = fromTime,
                        ToTime   = toTime,
                        Addres   = agent.Ipaddress
                    });

                    if (allCpuMetrics != null)
                    {
                        foreach (var metric in allCpuMetrics.Metrics)
                        {
                            _repositoryCpu.Create(new CpuMetricModel
                            {
                                IdAgent = agent.Id,
                                Time    = metric.Time,
                                Value   = metric.Value
                            });
                        }
                    }
                }
            }

            return(Task.CompletedTask);
        }
Пример #2
0
        public IActionResult GetMetricsFromAgent([FromRoute] DateTimeOffset fromTime, [FromRoute] DateTimeOffset toTime)
        {
            _logger.LogInformation($"Метод GetMetricsFromAgent fromTime {fromTime.DateTime} toTime {toTime.DateTime}");
            var metrics  = _repository.GetByTimeInterval(fromTime, toTime);
            var response = new AllCpuMetricsApiResponse()
            {
                Metrics = new List <CpuMetricsDto>()
            };

            if (metrics != null)
            {
                foreach (var metric in metrics)
                {
                    response.Metrics.Add(_mapper.Map <CpuMetricsDto>(metric));
                }
            }
            return(Ok(response));
        }
Пример #3
0
        public IActionResult GetAll()
        {
            _logger.LogInformation($"Метод GetAll");
            IList <CpuMetrics> metrics = _repository.GetAll();
            var response = new AllCpuMetricsApiResponse()
            {
                Metrics = new List <CpuMetricsDto>()
            };

            if (metrics != null)
            {
                foreach (var metric in metrics)
                {
                    response.Metrics.Add(_mapper.Map <CpuMetricsDto>(metric));
                }
            }
            return(Ok(response));
        }
Пример #4
0
        public Task Execute(IJobExecutionContext context)
        {
            var adress = new AdressAgentFormTable();
            List <AgentInfo> uriAdress = adress.GetAllAdress();

            foreach (var adressAgent in uriAdress)
            {
                var fromTimeTable     = new LastDate();
                var fromTimeFromTable = fromTimeTable.GetTimeFromTable("cpumetrics", adressAgent.AgentId);
                AllCpuMetricsApiResponse cpuMetrics = null;

                if (fromTimeFromTable == null)
                {
                    DateTimeOffset fromTime = DateTimeOffset.UnixEpoch;
                    DateTimeOffset toTime   = DateTimeOffset.UtcNow;
                    cpuMetrics = _metricsAgent.GetAllCpuMetrics(new Requests.GetAllCpuMetricsApiRequest {
                        ClientBaseAddress = new Uri(adressAgent.AgentAddress), ToTime = toTime, FromTime = fromTime
                    });
                }
                else
                {
                    DateTimeOffset toTime = DateTimeOffset.UtcNow;
                    cpuMetrics = _metricsAgent.GetAllCpuMetrics(new Requests.GetAllCpuMetricsApiRequest {
                        ClientBaseAddress = new Uri(adressAgent.AgentAddress), ToTime = toTime, FromTime = fromTimeFromTable
                    });
                }
                if (cpuMetrics != null)
                {
                    foreach (var item in cpuMetrics.Metrics)
                    {
                        _repository.Create(new CpuMetrics
                        {
                            AgentId = adressAgent.AgentId,
                            Time    = item.Time,
                            Value   = item.Value
                        });
                    }
                }
            }
            return(Task.CompletedTask);
        }