public async Task Start() { while (true) { await Task.Delay(_configurationProvider.MetricsTimeout); var metrics = await _metricsProvider.GetMetrics(); foreach (var metric in metrics) { var result = metric.Data; foreach (var metricResult in result.Result) { var metadata = _metadataFactory.GetFrom(metricResult); _metricRepository.AddOrUpdateMetric(new Uri(metadata.Instance), new MemoryUsageMetric(metricResult.Value[1])); } } } }