public Task Execute(IJobExecutionContext context) { var allAgentsInfo = _agentsRepository.GetAllAgentsInfo(); foreach (var agentInfo in allAgentsInfo) { var last = _repository.GetLast(agentInfo.AgentId); var request = new GetAllRamMetricsApiRequest() { AgentUrl = agentInfo.AgentUrl, FromTime = last, ToTime = DateTimeOffset.UtcNow, }; var response = _client.GetAllRamMetrics(request); if (response != null) { if (response.Metrics[0].Time == last) { response.Metrics.RemoveAt(0); } foreach (var metric in response.Metrics) { var formatedMetric = _mapper.Map <RamMetric>(metric); formatedMetric.AgentId = agentInfo.AgentId; _repository.Create(formatedMetric); } } } return(Task.CompletedTask); }
public List <int> GetRamMetrics(GetAllRamMetricsApiRequest request) { string content = GetMetricsApiResponseString(request, "rammetrics"); if (content != null) { return(GetValues(content)); } else { return(null); } }
public AllRamMetricsResponse GetRamMetrics(GetAllRamMetricsApiRequest 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/ram/available/from/{fromParameter}/to/{toParameter}"); try { HttpResponseMessage response = _httpClient.SendAsync(httpRequest).Result; using var responseStream = response.Content.ReadAsStreamAsync().Result; return(JsonSerializer.DeserializeAsync <AllRamMetricsResponse>(responseStream, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }).Result); } catch (Exception ex) { _logger.LogError(ex.Message); } 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 GetAllRamMetricsApiRequest { ClientBaseAddress = agent.AgentAddress, FromTime = fromTime, ToTime = toTime }; var metrics = _agentClient.GetAllRamMetrics(request); if (metrics.Metrics.Count == 0) { return(Task.CompletedTask); } foreach (var metric in metrics.Metrics) { _repository.Create(new RamMetricApi { Time = metric.Time, Value = metric.Value, AgentId = agent.AgentId }); } } return(Task.CompletedTask); }