예제 #1
0
        public IActionResult GetAgentsList()
        {
            var metrics  = _repository.GetAgentsList();
            var response = new AgentResponse()
            {
                Metrics = new List <AgentInfoDto>()
            };

            foreach (var metric in metrics)
            {
                response.Metrics.Add(_mapper.Map <AgentInfoDto>(metric));
            }

            return(Ok(response));
        }
예제 #2
0
 public Task Execute(IJobExecutionContext context)
 {
     try
     {
         var agents = _agentsRepository.GetAgentsList();
         for (int i = 0; i < agents.Count(); i++)
         {
             if (agents[i].Enabled)
             {
                 int            agentId  = i + 1;
                 var            lastTime = _repository.GetLastTime(agentId);
                 DateTimeOffset fromTime = DateTimeOffset.FromUnixTimeSeconds(lastTime);
                 var            metrics  = _client.GetCpuMetrics(new GetAllCpuMetricsApiRequest()
                 {
                     AgentAddress = agents[i].AgentAddress,
                     FromTime     = fromTime,
                     ToTime       = DateTimeOffset.Now
                 });
                 if (metrics != null)
                 {
                     _logger.LogInformation(@"metrics: {0}", metrics.Metrics.Count());
                     foreach (var metric in metrics.Metrics)
                     {
                         _repository.Create(new CpuMetric()
                         {
                             AgentId = agentId,
                             Time    = metric.Time.ToUnixTimeSeconds(),
                             Value   = metric.Value
                         });
                     }
                 }
             }
         }
     }
     catch (Exception ex)
     {
         _logger.LogError(ex.Message);
     }
     return(Task.CompletedTask);
 }