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); } }
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); }