Esempio n. 1
0
        public IActionResult GetMetricsAgentFromAgent([FromRoute] int agentId, [FromRoute] DateTimeOffset fromTime, [FromRoute] DateTimeOffset toTime)
        {
            _logger.LogInformation($"starting new request to metrics agent");
            var metrics = _metricsAgentClient.GetAllHddMetrics(new GetAllHddMetricsApiRequest
            {
                ClientBaseAddress = _uriAdress.GetUri(agentId),
                FromTime          = fromTime,
                ToTime            = toTime
            });

            if (metrics != null)
            {
                foreach (var item in metrics.Metrics)
                {
                    _repository.Create(new HddMetrics
                    {
                        AgentId = agentId,
                        Time    = item.Time,
                        Value   = item.Value
                    });
                }
                ;
            }
            return(Ok(metrics));
        }
        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);
        }
Esempio n. 3
0
        public Task Execute(IJobExecutionContext context)
        {
            var adress = new AdressAgentFormTable();
            List <AgentInfo> uriAdress = adress.GetAllAdress();

            foreach (var adressAgent in uriAdress)
            {
                var fromTimeTable     = new LastDate();
                var fromTimeFromTable = fromTimeTable.GetTimeFromTable("hddmetrics", adressAgent.AgentId);
                AllHddMetricsApiResponse hddMetrics = null;

                if (fromTimeFromTable == null)
                {
                    DateTimeOffset fromTime = DateTimeOffset.UnixEpoch;
                    DateTimeOffset toTime   = DateTimeOffset.UtcNow;
                    hddMetrics = _metricsAgent.GetAllHddMetrics(new Requests.GetAllHddMetricsApiRequest {
                        ClientBaseAddress = new Uri(adressAgent.AgentAddress), ToTime = toTime, FromTime = fromTime
                    });
                }
                else
                {
                    DateTimeOffset toTime = DateTimeOffset.UtcNow;
                    hddMetrics = _metricsAgent.GetAllHddMetrics(new Requests.GetAllHddMetricsApiRequest {
                        ClientBaseAddress = new Uri(adressAgent.AgentAddress), ToTime = toTime, FromTime = fromTimeFromTable
                    });
                }
                if (hddMetrics != null)
                {
                    foreach (var item in hddMetrics.Metrics)
                    {
                        _repository.Create(new HddMetrics
                        {
                            AgentId = adressAgent.AgentId,
                            Time    = item.Time,
                            Value   = item.Value
                        });
                    }
                }
            }
            return(Task.CompletedTask);
        }
Esempio n. 4
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 GetAllHddMetricsApiRequest
                {
                    ClientBaseAddress = agent.AgentAddress,
                    FromTime          = fromTime,
                    ToTime            = toTime
                };

                var metrics = _agentClient.GetAllHddMetrics(request);

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

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

            return(Task.CompletedTask);
        }
        public Task Execute(IJobExecutionContext context)
        {
            var agentsList = _repositoryAgents.GetAll();

            foreach (var agent in agentsList)
            {
                var metricsList = _metricsAgentClient.GetAllHddMetrics(new GetAllHddMetricsApiRequest
                {
                    FromTime          = _repository.GetMaxDate(agent.AgentId),
                    ToTime            = DateTimeOffset.UtcNow,
                    ClientBaseAddress = agent.AgentURL
                });
                if (!object.ReferenceEquals(metricsList, null))
                {
                    foreach (var metric in metricsList.Metrics)
                    {
                        _repository.Create(metric, agent.AgentId);
                    }
                }
            }

            return(Task.CompletedTask);
        }