public Task Execute(IJobExecutionContext context)
        {
            var allAgentsInfo = _agentsRepository.GetAllAgentsInfo();

            foreach (var agentInfo in allAgentsInfo)
            {
                var last    = _repository.GetLast(agentInfo.AgentId);
                var request = new GetAllCpuMetricsApiRequest()
                {
                    AgentUrl = agentInfo.AgentUrl,
                    FromTime = last,
                    ToTime   = DateTimeOffset.UtcNow,
                };

                var response = _client.GetCpuMetrics(request);

                if (response != null)
                {
                    if (response.Metrics[0].Time == last)
                    {
                        response.Metrics.RemoveAt(0);
                    }

                    foreach (var metric in response.Metrics)
                    {
                        var formatedMetric = _mapper.Map <CpuMetric>(metric);
                        formatedMetric.AgentId = agentInfo.AgentId;
                        _repository.Create(formatedMetric);
                    }
                }
            }

            return(Task.CompletedTask);
        }
Example #2
0
        public Task Execute(IJobExecutionContext context)
        {
            IList <Agents> _agents = _agentsRepository.GetAgents();

            foreach (var agent in _agents)
            {
                var fromTime = _repository.GetLastDate(agent.AgentId);
                var toTime   = DateTimeOffset.Now;

                var metrics = _metricsAgentClient.GetCpuMetrics(new GetAllCpuMetricsApiRequest
                {
                    FromTime          = fromTime,
                    ToTime            = toTime,
                    ClientBaseAddress = agent.AgentUrl
                });

                if (metrics != null)
                {
                    foreach (var metric in metrics)
                    {
                        _repository.Create(new CpuMetric {
                            Time = metric.time.ToUnixTimeSeconds(), Value = metric.value, AgentId = agent.AgentId
                        });
                    }
                }
            }
            return(Task.CompletedTask);
        }
Example #3
0
        public IActionResult GetMetricsAgentFromAgent([FromRoute] int agentId, [FromRoute] DateTimeOffset fromTime, [FromRoute] DateTimeOffset toTime)
        {
            _logger.LogInformation($"starting new request to metrics agent");
            var metrics = _metricsAgentClient.GetAllCpuMetrics(new GetAllCpuMetricsApiRequest
            {
                ClientBaseAddress = _uriAdress.GetUri(agentId),
                FromTime          = fromTime,
                ToTime            = toTime
            });

            if (metrics != null)
            {
                foreach (var item in metrics.Metrics)
                {
                    _repository.Create(new CpuMetrics
                    {
                        AgentId = agentId,
                        Time    = item.Time,
                        Value   = item.Value
                    });
                }
                ;
            }
            return(Ok(metrics));
        }
Example #4
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);
        }
Example #5
0
        public Task Execute(IJobExecutionContext context)
        {
            var agentList = _repositoryAgent.GetAllAgents();

            foreach (var agent in agentList)
            {
                string agentAddress = _repositoryAgent.GetAddressForId(agent.AgentId);

                var fromTime = _repositoryCpu.GetDateTimeOfLastRecord(agent.AgentId);
                var toTime   = DateTimeOffset.UtcNow;


                var metrics = _metricsAgentClient.GetCpuMetrics(new GetAllCpuMetricsApiRequest
                {
                    FromTime          = fromTime,
                    ToTime            = toTime,
                    ClientBaseAddress = agentAddress
                });

                if (metrics != null)
                {
                    foreach (var metricFromAgent in metrics.Metrics)
                    {
                        _repositoryCpu.Create(agent.AgentId, metricFromAgent);
                    }
                }
            }
            return(Task.CompletedTask);
        }
Example #6
0
        private async Task SyncronizeMetricsFromAgent(AgentInfo agentInfo)
        {
            try
            {
                var lastTime = _metricsRepository.GetMetricsLastDateFormAgent(agentInfo.AgentId).AddSeconds(1);
                var response = await _agentClient.GetMetrics(new CpuMetricClientRequest
                {
                    BaseUrl  = agentInfo.AgentUrl,
                    FromTime = lastTime,
                    ToTime   = DateTimeOffset.Now
                });

                if (response == null)
                {
                    return;
                }

                foreach (var clientMetric in response.Metrics)
                {
                    var cpuMetric = _mapper.Map <CpuMetric>(clientMetric);
                    cpuMetric.AgentId = agentInfo.AgentId;
                    _metricsRepository.Create(cpuMetric);
                }

                _logger.LogDebug($"Sincronized {response.Metrics.Count} Cpu Metrics from Agent ({agentInfo})");
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
            }
        }
Example #7
0
 public IActionResult Create([FromBody] CpuMetricCreateRequest request)
 {
     _repository.Create(new CpuMetric
     {
         Time  = request.Time,
         Value = request.Value
     });
     return(Ok());
 }
        public Task Execute(IJobExecutionContext context)
        {
            var cpuUsageInPercents = Convert.ToInt32(_cpuCounter.NextValue());
            var time = DateTimeOffset.UtcNow;

            _repository.Create(new CpuMetric {
                Time = time, Value = cpuUsageInPercents
            });
            return(Task.CompletedTask);
        }
Example #9
0
        public IActionResult Create([FromBody] CpuMetricCreateRequest request)
        {
            _logger.LogInformation(string.Format("params: time {0}; value {1}", request.Time, request.Value));
            _repository.Create(new CpuMetric
            {
                Time  = request.Time,
                Value = request.Value
            });

            return(Ok());
        }
Example #10
0
        public IActionResult Create([FromBody] CpuMetricsCreateRequest request)
        {
            _logger.LogInformation($"Метод Create {request}");
            _repository.Create(new CpuMetrics
            {
                Time  = request.Time,
                Value = request.Value
            });

            return(Ok());
        }
        public IActionResult Create([FromBody] CpuMetricCreateRequest request)
        {
            _logger.LogInformation($"Создается запись с данными Time:{request.Time}; Value:{request.Value}");

            _repository.Create(new CpuMetric
            {
                Time  = request.Time,
                Value = request.Value
            });

            return(Ok());
        }
        public IActionResult Create([FromBody] CpuMetricCreateRequest request)
        {
            _repository.Create(new CpuMetric
            {
                Time  = request.Time,
                Value = request.Value
            });

            _logger.LogInformation(string.Concat("Create_CPU: ", " Time: ", request.Time.ToString(), " Value: ", request.Value.ToString()));

            return(Ok());
        }
Example #13
0
        public IActionResult Create([FromBody] CpuMetricCreateRequest request)
        {
            repository.Create(new CpuMetric
            {
                Time  = request.Time,
                Value = request.Value
            });

            _logger.LogInformation($"Create: Time - {request.Time}, Value - {request.Value}");

            return(Ok());
        }
Example #14
0
        public IActionResult Create([FromBody] CpuMetricCreateRequest request)
        {
            _repository.Create(new CpuMetric
            {
                Time  = request.Time,
                Value = request.Value
            });

            _logger.LogInformation($"Create - Value: {request.Value}, Time: {request.Time} - Entry added successfully");

            return(Ok());
        }
Example #15
0
        public Task Execute(IJobExecutionContext context)
        {
            _logger.LogDebug("== CpuMetricJob START - " +
                             $"Time {DateTimeOffset.UtcNow}");
            //Получаем из репозитория агентов список всех агентов
            var allAgentsInfo = _agentsRepository.GetAllAgentsInfo();

            //Обрабатываем каждого агента в списке
            foreach (var agentInfo in allAgentsInfo.Agents)
            {
                //Временная метка, когда для текущего агента была снята последняя метрика
                var lastTime = _repository.GetLast(agentInfo.AgentId);

                // Создаем запрос для получения от текущего агента метрик за период времени
                // от последней проверки до текущего момента
                var request = new CpuMetricGetByIntervalRequestByClient()
                {
                    AgentUri = agentInfo.AgentUri,
                    FromTime = lastTime,
                    ToTime   = DateTimeOffset.UtcNow,
                };

                // Делаем запрос к Агенту метрик и получаем список метрик
                var response = _client.GetMetrics <CpuMetricFromAgentDto>(request, ApiNames.Cpu);

                if (response != null)
                {
                    // Убираем из выборки первую метрику если она совпадает с последней сохраненной в базе
                    // для исключения дублирования данных в базе
                    if (response.Metrics[0].Time == lastTime)
                    {
                        response.Metrics.RemoveAt(0);
                    }

                    // Перекладываем данные из Response в модели метрик
                    var recievedMetrics = new AllMetrics <CpuMetric>();
                    foreach (var metricDto in response.Metrics)
                    {
                        recievedMetrics.Metrics.Add(new CpuMetric
                        {
                            AgentId = agentInfo.AgentId,
                            Time    = metricDto.Time,
                            Value   = metricDto.Value
                        });
                    }
                    _repository.Create(recievedMetrics);
                }
            }
            _logger.LogDebug("!= CpuMetricJob END - " +
                             $"Time {DateTimeOffset.UtcNow}");
            return(Task.CompletedTask);
        }
Example #16
0
        public Task Execute(IJobExecutionContext context)
        {
            // получаем значение занятости CPU
            var cpuUsageInPercents = Convert.ToInt32(_cpuCounter.NextValue());
            // узнаем когда мы сняли значение метрики.
            DateTimeOffset time = DateTimeOffset.UtcNow;

            // теперь можно записать что-то при помощи репозитория
            _repository.Create(new Models.CpuMetrics {
                Time = time, Value = cpuUsageInPercents
            });
            return(Task.CompletedTask);
        }
Example #17
0
        public Task Execute(IJobExecutionContext context)
        {
            var cpuUsageInPercents = Convert.ToInt32(_cpuCounter.NextValue());

            _repository.Create(new CpuMetric
            {
                Time  = DateTimeOffset.Now,
                Value = cpuUsageInPercents
            });

            _logger.LogDebug("Processor Time {0} % by {1}", cpuUsageInPercents, DateTimeOffset.Now);

            return(Task.CompletedTask);
        }
Example #18
0
        public Task Execute(IJobExecutionContext context)
        {
            // Складываем характеристики всех экземпляров счетчиков
            int value = Convert.ToInt32(_counter.NextValue());

            // Время когда была собрана метрика
            var time = DateTimeOffset.UtcNow;

            // Запись метрики в репозиторий
            _repository.Create(new CpuMetric {
                Time = time, Value = value
            });

            return(Task.CompletedTask);
        }
 public IActionResult Create([FromBody] CpuMetricCreateRequest metric)
 {
     try
     {
         _logger.Debug($"Route(api/metrics/cpu): Running the Create method");
         _repository.Create(_mapper.Map <CpuMetric>(metric));
         _logger.Debug($"Route(api/metrics/cpu): Create method completed successfully");
         return(Ok());
     }
     catch (Exception e)
     {
         _logger.Error(e);
         return(BadRequest(e.Message));
     }
 }
Example #20
0
 public Task Execute(IJobExecutionContext context)
 {
     try
     {
         var cpuUsageInPercent = Convert.ToInt32(_cpuCounter.NextValue());
         var time = DateTimeOffset.Now.ToUnixTimeSeconds();
         _repository.Create(new CpuMetric()
         {
             Time = time, Value = cpuUsageInPercent
         });
     }
     catch (Exception ex)
     {
         _logger.LogError(ex.Message);
     }
     return(Task.CompletedTask);
 }
Example #21
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);
        }
Example #22
0
 public Task Execute(IJobExecutionContext context)
 {
     try
     {
         var agents = _agentsRepository.GetAgentsList();
         for (int i = 0; i < agents.Count(); i++)
         {
             if (agents[i].Enabled)
             {
                 int            agentId  = i + 1;
                 var            lastTime = _repository.GetLastTime(agentId);
                 DateTimeOffset fromTime = DateTimeOffset.FromUnixTimeSeconds(lastTime);
                 var            metrics  = _client.GetCpuMetrics(new GetAllCpuMetricsApiRequest()
                 {
                     AgentAddress = agents[i].AgentAddress,
                     FromTime     = fromTime,
                     ToTime       = DateTimeOffset.Now
                 });
                 if (metrics != null)
                 {
                     _logger.LogInformation(@"metrics: {0}", metrics.Metrics.Count());
                     foreach (var metric in metrics.Metrics)
                     {
                         _repository.Create(new CpuMetric()
                         {
                             AgentId = agentId,
                             Time    = metric.Time.ToUnixTimeSeconds(),
                             Value   = metric.Value
                         });
                     }
                 }
             }
         }
     }
     catch (Exception ex)
     {
         _logger.LogError(ex.Message);
     }
     return(Task.CompletedTask);
 }
Example #23
0
        public Task Execute(IJobExecutionContext context)
        {
            var agentsList = _repositoryAgents.GetAll();

            foreach (var agent in agentsList)
            {
                var metricsList = _metricsAgentClient.GetAllCpuMetrics(new GetAllCpuMetricsApiRequest
                {
                    FromTime          = _repository.GetMaxDate(agent.AgentId),
                    ToTime            = DateTimeOffset.UtcNow,
                    ClientBaseAddress = agent.AgentURL
                });
                if (!object.ReferenceEquals(metricsList, null))
                {
                    foreach (var metric in metricsList.Metrics)
                    {
                        _repository.Create(metric, agent.AgentId);
                    }
                }
            }

            return(Task.CompletedTask);
        }
Example #24
0
        public IActionResult Create([FromBody] CpuMetricCreateRequest request)
        {
            _repository.Create(_mapper.Map <CpuMetric>(request));

            return(Ok());
        }
 public IActionResult Create([FromBody] CpuMetricModel item)
 {
     _repository.Create(item);
     return(Ok());
 }
 public IActionResult Create([FromBody] CpuMetricCreateRequest request)
 {
     _repository.Create(_mapper.Map <CpuMetric>(request));
     _logger.LogInformation($"Add item. Parameters: Time = {request.Time}, Value = {request.Value}");
     return(Ok());
 }