public IActionResult GetMetricsAgentFromAgent([FromRoute] int agentId, [FromRoute] DateTimeOffset fromTime, [FromRoute] DateTimeOffset toTime)
        {
            _logger.LogInformation($"starting new request to metrics agent");
            var metrics = _metricsAgentClient.GetAllDotNetMetrics(new GetAllDotNetMetricsApiRequest

            {
                ClientBaseAddress = _uriAdress.GetUri(agentId),
                FromTime          = fromTime,
                ToTime            = toTime
            });

            if (metrics != null)
            {
                foreach (var item in metrics.Metrics)
                {
                    _repository.Create(new DotNetMetrics
                    {
                        AgentId = agentId,
                        Time    = item.Time,
                        Value   = item.Value
                    });
                }
                ;
            }
            return(Ok(metrics));
        }
Beispiel #2
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("dotnetmetrics", adressAgent.AgentId);
                AllDotNetMetricsApiResponse dotNetMetrics = null;

                if (fromTimeFromTable == null)
                {
                    DateTimeOffset fromTime = DateTimeOffset.UnixEpoch;
                    DateTimeOffset toTime   = DateTimeOffset.UtcNow;
                    dotNetMetrics = _metricsAgent.GetAllDotNetMetrics(new Requests.GetAllDotNetMetricsApiRequest {
                        ClientBaseAddress = new Uri(adressAgent.AgentAddress), ToTime = toTime, FromTime = fromTime
                    });
                }
                else
                {
                    DateTimeOffset toTime = DateTimeOffset.UtcNow;
                    dotNetMetrics = _metricsAgent.GetAllDotNetMetrics(new Requests.GetAllDotNetMetricsApiRequest {
                        ClientBaseAddress = new Uri(adressAgent.AgentAddress), ToTime = toTime, FromTime = fromTimeFromTable
                    });
                }
                if (dotNetMetrics != null)
                {
                    foreach (var item in dotNetMetrics.Metrics)
                    {
                        _repository.Create(new DotNetMetrics
                        {
                            AgentId = adressAgent.AgentId,
                            Time    = item.Time,
                            Value   = item.Value
                        });
                    }
                }
            }
            return(Task.CompletedTask);
        }