public IActionResult GetMetricsByPercentileFromAllCluster( [FromRoute] HddMetricGetByIntervalForClusterRequest request, [FromRoute] Percentile percentile) { _logger.LogDebug("Вызов метода. Параметры:" + $" {nameof(request.FromTime)} = {request.FromTime}" + $" {nameof(request.ToTime)} = {request.ToTime}" + $" {nameof(percentile)} = {percentile}"); var agents = _agentRepository.GetAllAgentsInfo(); var response = new AllMetricsResponse <HddMetricDto>(); foreach (var agent in agents.Agents) { var currentAgentMetrics = _repository.GetByTimeIntervalPercentile(agent.AgentId, request.FromTime, request.ToTime, percentile); foreach (var metric in currentAgentMetrics.Metrics) { response.Metrics.Add(_mapper.Map <HddMetricDto>(metric)); } } return(Ok(response)); }
public AllMetricsResponse <T> GetMetrics <T>(IMetricGetByIntervalRequestByClient request, ApiNames apiName) { var fromParameter = request.FromTime.UtcDateTime.ToString("O"); var toParameter = request.ToTime.UtcDateTime.ToString("O"); var agentId = request.AgentId.ToString(); var httpRequest = new HttpRequestMessage( HttpMethod.Get, $"{ManagerUri}/api/metrics/{apiNames[apiName]}/agent/{agentId}/from/{fromParameter}/to/{toParameter}"); var response = new AllMetricsResponse <T>(); try { HttpResponseMessage managerResponse = _httpClient.SendAsync(httpRequest).Result; var responseStream = managerResponse.Content.ReadAsStreamAsync().Result; var streamReader = new StreamReader(responseStream); var content = streamReader.ReadToEnd(); var options = new JsonSerializerOptions() { PropertyNameCaseInsensitive = true }; response = JsonSerializer.Deserialize <AllMetricsResponse <T> >(content, options); } catch (Exception ex) { _logger.LogError(ex.Message); } return(response); }
public virtual async Task <IActionResult> GetByTimePeriod([FromRoute] long fromTime, [FromRoute] long toTime) { _logger.LogInformation(string.Format("params: fromTime {0}; toTime {1}", fromTime, toTime)); var responce = new AllMetricsResponse { Metrics = await _repository.GetAll() .Where(item => item.Time > fromTime && item.Time < toTime) .Select(item => _mapper.Map <MetricDto>(item)) .ToListAsync() }; return(Ok(responce)); }
public IActionResult GetMetricsFromAgent([FromRoute] HddMetricGetByIntervalForAgentRequest request) { _logger.LogDebug("Вызов метода. Параметры:" + $" {nameof(request.AgentId)} = {request.AgentId}" + $" {nameof(request.FromTime)} = {request.FromTime}" + $" {nameof(request.ToTime)} = {request.ToTime}"); var metrics = _repository.GetByTimeInterval(request.AgentId, request.FromTime, request.ToTime); var response = new AllMetricsResponse <HddMetricDto>(); foreach (var metric in metrics.Metrics) { response.Metrics.Add(_mapper.Map <HddMetricDto>(metric)); } return(Ok(response)); }