public AllCpuMetricsApiResponse GetCpuMetrics(GetAllCpuMetricsApiRequest request)
        {
            var httpRequest = new HttpRequestMessage(HttpMethod.Get,
                                                     $"http://localhost:5050/api/metrics/cpu/agent/{request.Agent}/from/{request.FromTime:o}/to/{request.ToTime:o}");

            try
            {
                HttpResponseMessage response = _httpClient.SendAsync(httpRequest).Result;
                using (var responseStream = response.Content.ReadAsStreamAsync().Result)
                {
                    using (var streamReader = new StreamReader(responseStream))
                    {
                        var content = streamReader.ReadToEnd();
                        var result  = JsonSerializer.Deserialize <AllCpuMetricsApiResponse>(content, new JsonSerializerOptions()
                        {
                            PropertyNameCaseInsensitive = true
                        });
                        return(result);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.Write(ex.Message);
                return(null);
            }
        }
        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);
        }
        public AllCpuMetricsResponse GetCpuMetrics(GetAllCpuMetricsApiRequest request)
        {
            var fromParameter = request.FromTime.LocalDateTime.ToString("O");
            var toParameter   = request.ToTime.LocalDateTime.ToString("O");
            var httpRequest   = new HttpRequestMessage(HttpMethod.Get, $"{request.ClientBaseAddress}api/metrics/cpu/from/{fromParameter}/to/{toParameter}");

            try
            {
                HttpResponseMessage response = _httpClient.SendAsync(httpRequest).Result;

                using var responseStream = response.Content.ReadAsStreamAsync().Result;


                var res = JsonSerializer.DeserializeAsync <AllCpuMetricsResponse>(responseStream,
                                                                                  new JsonSerializerOptions {
                    PropertyNameCaseInsensitive = true
                }).Result;
                return(res);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
            }
            return(null);
        }
        public List <int> GetCpuMetrics(GetAllCpuMetricsApiRequest request)
        {
            string content = GetMetricsApiResponseString(request, "cpumetrics");

            if (content != null)
            {
                return(GetValues(content));
            }
            else
            {
                return(null);
            }
        }
Exemple #5
0
        public Task Execute(IJobExecutionContext context)
        {
            var agentsList = _agentsRepository.GetAgentList();

            if (agentsList.Count == 0)
            {
                return(Task.CompletedTask);
            }

            foreach (var agent in agentsList)
            {
                DateTimeOffset fromTime = _repository.GetLastTime(agent.AgentId);
                DateTimeOffset toTime   = DateTimeOffset.UtcNow;

                var request = new GetAllCpuMetricsApiRequest
                {
                    ClientBaseAddress = agent.AgentAddress,
                    FromTime          = fromTime,
                    ToTime            = toTime
                };

                var metrics = _agentClient.GetAllCpuMetrics(request);

                if (metrics.Metrics.Count == 0)
                {
                    return(Task.CompletedTask);
                }

                foreach (var metric in metrics.Metrics)
                {
                    _repository.Create(new CpuMetricApi {
                        Time = metric.Time, Value = metric.Value, AgentId = agent.AgentId
                    });
                }
            }

            return(Task.CompletedTask);
        }