public async Task GetMetricSeriesData()
        {
            var client = GetMetricsAdvisorClient();

            var options = new GetMetricSeriesDataOptions(
                new List <DimensionKey>()
            {
                new DimensionKey(new List <KeyValuePair <string, string> > {
                    new KeyValuePair <string, string>("Dim1", "*"),
                    new KeyValuePair <string, string>("Dim2", "*"),
                })
            },
                Recording.UtcNow.AddYears(-5),
                Recording.UtcNow);

            bool isResponseEmpty = true;

            await foreach (MetricSeriesData seriesData in client.GetMetricSeriesDataAsync(MetricId, options))
            {
                isResponseEmpty = false;
                Assert.That(seriesData, Is.Not.Null);
            }

            Assert.That(isResponseEmpty, Is.False);
        }
Пример #2
0
        public async Task GetMetricSeriesDataAsync()
        {
            string endpoint        = MetricsAdvisorUri;
            string subscriptionKey = MetricsAdvisorSubscriptionKey;
            string apiKey          = MetricsAdvisorApiKey;
            var    credential      = new MetricsAdvisorKeyCredential(subscriptionKey, apiKey);

            var client = new MetricsAdvisorClient(new Uri(endpoint), credential);

            string metricId = MetricId;

            var startsOn = DateTimeOffset.Parse("2020-01-01T00:00:00Z");
            var endsOn   = DateTimeOffset.UtcNow;
            var options  = new GetMetricSeriesDataOptions(startsOn, endsOn);

            // Only the two time series with the keys specified below will be returned.

            var dimensions = new Dictionary <string, string>()
            {
                { "Dim1", "JPN" },
                { "Dim2", "__SUM__" }
            };
            var seriesKey1 = new DimensionKey(dimensions);

            dimensions = new Dictionary <string, string>()
            {
                { "Dim1", "USD" },
                { "Dim2", "US" }
            };
            var seriesKey2 = new DimensionKey(dimensions);

            options.SeriesKeys.Add(seriesKey1);
            options.SeriesKeys.Add(seriesKey2);

            await foreach (MetricSeriesData seriesData in client.GetMetricSeriesDataAsync(metricId, options))
            {
                Console.WriteLine($"Time series metric ID: {seriesData.MetricId}");
                Console.WriteLine("Time series key:");

                foreach (KeyValuePair <string, string> keyValuePair in seriesData.SeriesKey)
                {
                    Console.WriteLine($"  Dimension '{keyValuePair.Key}': {keyValuePair.Value}");
                }

                Console.WriteLine("Data points:");

                // Print at most 3 points per time series.
                int totalPoints = seriesData.Timestamps.Count < 3 ? seriesData.Timestamps.Count : 3;

                for (int pointIndex = 0; pointIndex < totalPoints; pointIndex++)
                {
                    Console.WriteLine($"  Point {pointIndex}:");
                    Console.WriteLine($"   - Timestamp: {seriesData.Timestamps[pointIndex]}");
                    Console.WriteLine($"   - Metric value: {seriesData.MetricValues[pointIndex]}");
                }

                Console.WriteLine();
            }
        }
        public async Task GetMetricSeriesDataAsync()
        {
            string endpoint        = MetricsAdvisorUri;
            string subscriptionKey = MetricsAdvisorSubscriptionKey;
            string apiKey          = MetricsAdvisorApiKey;
            var    credential      = new MetricsAdvisorKeyCredential(subscriptionKey, apiKey);

            var client = new MetricsAdvisorClient(new Uri(endpoint), credential);

            string metricId = MetricId;

            // Only the two time series with the keys specified below will be returned.

            var seriesKey1 = new DimensionKey();

            seriesKey1.AddDimensionColumn("city", "Belo Horizonte");
            seriesKey1.AddDimensionColumn("category", "__SUM__");

            var seriesKey2 = new DimensionKey();

            seriesKey2.AddDimensionColumn("city", "Hong Kong");
            seriesKey2.AddDimensionColumn("category", "Industrial & Scientific");

            var filter = new List <DimensionKey>()
            {
                seriesKey1, seriesKey2
            };

            var startTime = DateTimeOffset.Parse("2020-01-01T00:00:00Z");
            var endTime   = DateTimeOffset.UtcNow;
            var options   = new GetMetricSeriesDataOptions(filter, startTime, endTime);

            await foreach (MetricSeriesData seriesData in client.GetMetricSeriesDataAsync(metricId, options))
            {
                Console.WriteLine($"Time series metric ID: {seriesData.Definition.MetricId}");
                Console.WriteLine("Time series key:");

                foreach (KeyValuePair <string, string> keyValuePair in seriesData.Definition.SeriesKey.AsDictionary())
                {
                    Console.WriteLine($"  Dimension '{keyValuePair.Key}': {keyValuePair.Value}");
                }

                Console.WriteLine("Data points:");

                // Print at most 3 points per time series.
                for (int pointIndex = 0; pointIndex < 3; pointIndex++)
                {
                    Console.WriteLine($"  Point {pointIndex}:");
                    Console.WriteLine($"   - Timestamp: {seriesData.Timestamps[pointIndex]}");
                    Console.WriteLine($"   - Value: {seriesData.Values[pointIndex]}");
                }

                Console.WriteLine();
            }
        }
Пример #4
0
        public async Task GetMetricSeriesData()
        {
            MetricsAdvisorClient client = GetMetricsAdvisorClient();

            var seriesKey1 = new DimensionKey();

            seriesKey1.AddDimensionColumn("city", "Delhi");
            seriesKey1.AddDimensionColumn("category", "Handmade");

            var seriesKey2 = new DimensionKey();

            seriesKey2.AddDimensionColumn("city", "Koltaka");
            seriesKey2.AddDimensionColumn("category", "__SUM__");

            var seriesKeys = new List <DimensionKey>()
            {
                seriesKey1, seriesKey2
            };
            var returnedKeys = new List <DimensionKey>();

            var options = new GetMetricSeriesDataOptions(seriesKeys, SamplingStartTime, SamplingEndTime);

            await foreach (MetricSeriesData seriesData in client.GetMetricSeriesDataAsync(MetricId, options))
            {
                Assert.That(seriesData, Is.Not.Null);
                Assert.That(seriesData.Definition, Is.Not.Null);
                Assert.That(seriesData.Definition.SeriesKey, Is.Not.Null);
                Assert.That(seriesData.Timestamps, Is.Not.Null);
                Assert.That(seriesData.Values, Is.Not.Null);

                Assert.That(seriesData.Definition.MetricId, Is.EqualTo(MetricId));

                Assert.That(seriesData.Timestamps.Count, Is.EqualTo(seriesData.Values.Count));

                foreach (DateTimeOffset timestamp in seriesData.Timestamps)
                {
                    Assert.That(timestamp, Is.InRange(SamplingStartTime, SamplingEndTime));
                }

                returnedKeys.Add(seriesData.Definition.SeriesKey);
            }

            IEnumerable <List <KeyValuePair <string, string> > > expectedKvps = seriesKeys.Select(key => key.AsDictionary().ToList());
            IEnumerable <List <KeyValuePair <string, string> > > returnedKvps = returnedKeys.Select(key => key.AsDictionary().ToList());

            Assert.That(returnedKvps, Is.EquivalentTo(expectedKvps));
        }
Пример #5
0
        public async Task GetMetricSeriesData(bool useTokenCredential)
        {
            MetricsAdvisorClient client = GetMetricsAdvisorClient(useTokenCredential);

            var seriesKey1 = new DimensionKey();

            seriesKey1.AddDimensionColumn("city", "Delhi");
            seriesKey1.AddDimensionColumn("category", "Handmade");

            var seriesKey2 = new DimensionKey();

            seriesKey2.AddDimensionColumn("city", "Koltaka");
            seriesKey2.AddDimensionColumn("category", "__SUM__");

            var returnedKeys = new List <DimensionKey>();

            var options = new GetMetricSeriesDataOptions(SamplingStartTime, SamplingEndTime)
            {
                SeriesToFilter = { seriesKey1, seriesKey2 }
            };

            await foreach (MetricSeriesData seriesData in client.GetMetricSeriesDataAsync(MetricId, options))
            {
                Assert.That(seriesData, Is.Not.Null);
                Assert.That(seriesData.Definition, Is.Not.Null);
                Assert.That(seriesData.Definition.SeriesKey, Is.Not.Null);
                Assert.That(seriesData.Timestamps, Is.Not.Null);
                Assert.That(seriesData.MetricValues, Is.Not.Null);

                Assert.That(seriesData.Definition.MetricId, Is.EqualTo(MetricId));

                Assert.That(seriesData.Timestamps.Count, Is.EqualTo(seriesData.MetricValues.Count));

                foreach (DateTimeOffset timestamp in seriesData.Timestamps)
                {
                    Assert.That(timestamp, Is.InRange(SamplingStartTime, SamplingEndTime));
                }

                returnedKeys.Add(seriesData.Definition.SeriesKey);
            }

            Assert.That(returnedKeys.Count, Is.EqualTo(2));
            Assert.That(returnedKeys.Contains(seriesKey1));
            Assert.That(returnedKeys.Contains(seriesKey2));
        }
Пример #6
0
        public async Task GetMetricSeriesData(bool useTokenCredential)
        {
            MetricsAdvisorClient client = GetMetricsAdvisorClient(useTokenCredential);

            var dimensions = new Dictionary <string, string>()
            {
                { "city", "Delhi" }, { "category", "Handmade" }
            };
            var seriesKey1 = new DimensionKey(dimensions);

            dimensions = new Dictionary <string, string>()
            {
                { "city", "Kolkata" }, { "category", "__SUM__" }
            };
            var seriesKey2 = new DimensionKey(dimensions);

            var returnedKey1    = false;
            var returnedKey2    = false;
            var seriesDataCount = 0;

            var options = new GetMetricSeriesDataOptions(SamplingStartTime, SamplingEndTime)
            {
                SeriesKeys = { seriesKey1, seriesKey2 }
            };

            await foreach (MetricSeriesData seriesData in client.GetMetricSeriesDataAsync(MetricId, options))
            {
                Assert.That(seriesData, Is.Not.Null);
                Assert.That(seriesData.SeriesKey, Is.Not.Null);
                Assert.That(seriesData.Timestamps, Is.Not.Null);
                Assert.That(seriesData.MetricValues, Is.Not.Null);

                Assert.That(seriesData.MetricId, Is.EqualTo(MetricId));

                Assert.That(seriesData.Timestamps.Count, Is.EqualTo(seriesData.MetricValues.Count));

                foreach (DateTimeOffset timestamp in seriesData.Timestamps)
                {
                    Assert.That(timestamp, Is.InRange(SamplingStartTime, SamplingEndTime));
                }

                var seriesKey = seriesData.SeriesKey;

                Assert.That(seriesKey.TryGetValue("city", out string city));
                Assert.That(seriesKey.TryGetValue("category", out string category));

                if (city == "Delhi" && category == "Handmade")
                {
                    returnedKey1 = true;
                }
                else if (city == "Kolkata" && category == "__SUM__")
                {
                    returnedKey2 = true;
                }

                seriesDataCount++;
            }

            Assert.That(seriesDataCount, Is.EqualTo(2));
            Assert.That(returnedKey1);
            Assert.That(returnedKey2);
        }