public async Task <IEnumerable <MetricQueryResult> > GetResourceMetricsAsync(string resourceUri, QueryParameters queryParameters, CancellationToken cancellationToken = default(CancellationToken)) { this.tracer.TraceInformation($"Running GetResourceMetrics with an instance of {this.GetType().Name}, with params: {queryParameters}"); ResponseInner metrics = await this.retryPolicy.RunAndTrackDependencyAsync( this.tracer, DependencyName, "GetResourceMetrics", () => this.monitorManagementClient.Metrics.ListAsync( resourceUri: resourceUri, timespan: queryParameters.TimeRange, interval: queryParameters.Interval, metricnames: queryParameters.MetricNames == null ? string.Empty : string.Join(",", queryParameters.MetricNames), metricnamespace: queryParameters.MetricNamespace, aggregation: queryParameters.Aggregations != null ? string.Join(",", queryParameters.Aggregations) : null, top: queryParameters.Top, orderby: queryParameters.Orderby, odataQuery: queryParameters.Filter, resultType: null, cancellationToken: cancellationToken)); this.tracer.TraceInformation($"Running GetResourceMetrics completed. Total Metrics: {metrics.Value.Count}."); IList <MetricQueryResult> result = metrics.ToMetricQueryResult(); return(result); }
public void WhenConvertingToSmartDetectorsMetricQueryResultThenItWasConvertedCorrectly() { var timestamp = DateTime.UtcNow; var responseInner = new ResponseInner("timespan", GetMetricList(timestamp)); List <MetricQueryResult> metrics = responseInner.ToMetricQueryResult().ToList(); // Validate first metric was converted successfully Assert.AreEqual("MetricName1", metrics[0].Name, "First metric name isn't correct"); Assert.AreEqual("ByteSeconds", metrics[0].Unit, "First metric unit isn't correct"); Assert.AreEqual(0, metrics[0].Timeseries.Count, "First metric timeseries should be empty"); // Validate second metric was converted successfully Assert.AreEqual("MetricName2", metrics[1].Name, "Second metric name isn't correct"); Assert.AreEqual("MilliSeconds", metrics[1].Unit, "Second metric unit isn't correct"); Assert.AreEqual(5, metrics[1].Timeseries.Count, "Second metric timeseries should be empty"); Assert.AreEqual(2, metrics[1].Timeseries[0].Data.Count, "Second metric first timeseries (Dimension1Value1) length should be 2"); Assert.AreEqual(2, metrics[1].Timeseries[1].Data.Count, "Second metric second timeseries (Dimension1Value2) length should be 2"); Assert.AreEqual(1.1, metrics[1].Timeseries[0].Data[0].Average, "Second metric first timeseries first average is wrong"); Assert.AreEqual(1.0, metrics[1].Timeseries[0].Data[1].Average, "Second metric first timeseries second average is wrong"); Assert.AreEqual(timestamp.AddMinutes(-1), metrics[1].Timeseries[0].Data[0].TimeStamp, "Second metric first timeseries first timestamp is wrong"); Assert.IsNull(metrics[1].Timeseries[0].Data[0].Total, "Second metric first timeseries first total should be null"); Assert.IsNull(metrics[1].Timeseries[0].Data[0].Maximum, "Second metric first timeseries first maximum should be null"); Assert.IsNull(metrics[1].Timeseries[0].Data[0].Minimum, "Second metric first timeseries first minimum should be null"); Assert.IsNull(metrics[1].Timeseries[0].Data[0].Count, "Second metric first timeseries first count should be null"); Assert.AreEqual(2.1, metrics[1].Timeseries[1].Data[0].Minimum, "Second metric second timeseries first minimum is wrong"); Assert.AreEqual(3.1, metrics[1].Timeseries[2].Data[0].Maximum, "Second metric third timeseries first maximum is wrong"); Assert.AreEqual(4.1, metrics[1].Timeseries[3].Data[0].Total, "Second metric forth timeseries first total is wrong"); Assert.AreEqual(1, metrics[1].Timeseries[4].Data[0].Count, "Second metric fifth timeseries first count is wrong"); Assert.AreEqual(1, metrics[1].Timeseries[0].MetaData.Count, "Second metric first timeseries metadata length is wrong"); Assert.AreEqual("Dimension1", metrics[1].Timeseries[0].MetaData[0].Key, "Second metric first timeseries first metadata key is wrong"); Assert.AreEqual("Dimension1Value1", metrics[1].Timeseries[0].MetaData[0].Value, "Second metric first timeseries first metadata value is wrong"); }