private AllMetricsApiResponseModel GetAllMetrics(AllMetricsApiRequestModel request, string metric) { var fromParameter = request.FromTime; var toParameter = request.ToTime; var httpRequest = new HttpRequestMessage( HttpMethod.Get, $"{request.ClientBaseAddress}/api/metrics/{metric}/from/{fromParameter}/to/{toParameter}"); try { HttpResponseMessage response = _httpClient.SendAsync(httpRequest).Result; using var responseStream = response.Content.ReadAsStreamAsync().Result; var res = JsonSerializer.DeserializeAsync <AllMetricsApiResponseModel>( responseStream, new JsonSerializerOptions(JsonSerializerDefaults.Web) ).Result; return(AssignAgentIdNum(res, request.AgentId)); } catch (Exception ex) { _logger.LogError(ex.Message); } return(null); }
public Task Execute(IJobExecutionContext context) { foreach (var agent in GetAllAgentsAsync()) { var request = new AllMetricsApiRequestModel() { AgentId = agent.AgentId, ClientBaseAddress = agent.AgentUrl.ToString(), FromTime = _cpuRepository.GetAll().OrderBy(e => e.Time).LastOrDefault()?.Time ?? 0, ToTime = DateTimeOffset.UtcNow.ToUnixTimeSeconds() }; var metrics = _metricsAgentClient.GetAllCpuMetrics(request); SaveCpuMetrics(metrics, _cpuRepository); metrics = null; metrics = _metricsAgentClient.GetAllRamMetrics(request); SaveRamMetrics(metrics, _ramRepository); metrics = null; metrics = _metricsAgentClient.GetAllHddMetrics(request); SaveHddMetrics(metrics, _hddRepository); metrics = null; metrics = _metricsAgentClient.GetAllNetworkMetrics(request); SaveNetworkMetrics(metrics, _networkRepository); metrics = null; metrics = _metricsAgentClient.GetAllDotnetMetrics(request); SaveDotnetMetrics(metrics, _dotnetRepository); } return(Task.CompletedTask); }
public AllMetricsApiResponseModel GetAllNetworkMetrics(AllMetricsApiRequestModel request) => GetAllMetrics(request, "network");
public AllMetricsApiResponseModel GetAllDotnetMetrics(AllMetricsApiRequestModel request) => GetAllMetrics(request, "dotnet");
public AllMetricsApiResponseModel GetAllCpuMetrics(AllMetricsApiRequestModel request) => GetAllMetrics(request, "cpu");
public AllMetricsApiResponseModel GetAllHddMetrics(AllMetricsApiRequestModel request) => GetAllMetrics(request, "hdd");
public AllMetricsApiResponseModel GetAllRamMetrics(AllMetricsApiRequestModel request) => GetAllMetrics(request, "ram");