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