internal static void AddProperties(this MetricTelemetry metricTelemetry, MetricsBag metricsBag, string p1Name, string p2Name, string p3Name)
        {
            if (metricsBag.Property1 != null)
            {
                if (p1Name == null)
                {
                    p1Name = string.Format(CultureInfo.InvariantCulture, PropertyFormat, metricTelemetry.Name, Constants.DefaultP1Name);
                }

                metricTelemetry.Properties[p1Name] = metricsBag.Property1;
            }

            if (metricsBag.Property2 != null)
            {
                if (p2Name == null)
                {
                    p2Name = string.Format(CultureInfo.InvariantCulture, PropertyFormat, metricTelemetry.Name, Constants.DefaultP2Name);
                }

                metricTelemetry.Properties[p2Name] = metricsBag.Property2;
            }

            if (metricsBag.Property3 != null)
            {
                if (p3Name == null)
                {
                    p3Name = string.Format(CultureInfo.InvariantCulture, PropertyFormat, metricTelemetry.Name, Constants.DefaultP3Name);
                }

                metricTelemetry.Properties[p3Name] = metricsBag.Property3;
            }
        }
        public void Add()
        {
            var counterData = new MetricsBag();

            for (double i = -5; i < 5; i += 0.6)
            {
                counterData.Add(i);
            }
        }
Example #3
0
        public void AddPropertiesNoPropertiesTest()
        {
            MetricsBag      bag    = new MetricsBag();
            MetricTelemetry metric = new MetricTelemetry();

            metric.AddProperties(bag, "p1", "p2", "p3");

            Assert.AreEqual(0, metric.Properties.Count);
        }
Example #4
0
        public Task <MetricsBag> CollectMetrics(CancellationToken cancellationToken)
        {
            if (!IsInitialized)
            {
                throw new InvalidOperationException("Metrics collector is not initialized");
            }

            var metrics = new MetricsBag(settings.AgentId, GetMetrics());

            return(Task.FromResult(metrics));
        }
        public void Average()
        {
            var counterData = new MetricsBag();
            const double expectedAverage = 3.33;

            counterData.Add(-5);
            counterData.Add(5);
            counterData.Add(10);

            AggregationResult agg = counterData.CalculateAggregation();

            Assert.AreEqual(expectedAverage, Math.Round(agg.Average, 2));
        }
Example #6
0
        public void Average()
        {
            var          counterData     = new MetricsBag();
            const double expectedAverage = 3.33;

            counterData.Add(-5);
            counterData.Add(5);
            counterData.Add(10);

            AggregationResult agg = counterData.CalculateAggregation();

            Assert.AreEqual(expectedAverage, Math.Round(agg.Average, 2));
        }
Example #7
0
        public void Count()
        {
            var       counterData   = new MetricsBag();
            const int expectedCount = 5;

            for (int i = 0; i < expectedCount; i++)
            {
                counterData.Add(i);
            }

            AggregationResult agg = counterData.CalculateAggregation();

            Assert.AreEqual(expectedCount, agg.Count);
        }
        public void Count()
        {
            var counterData = new MetricsBag();
            const int expectedCount = 5;

            for (int i = 0; i < expectedCount; i++)
            {
                counterData.Add(i);
            }

            AggregationResult agg = counterData.CalculateAggregation();

            Assert.AreEqual(expectedCount, agg.Count);
        }
Example #9
0
        public void Sum()
        {
            var    counterData = new MetricsBag();
            double expectedSum = 8.61;

            counterData.Add(0.43);
            counterData.Add(1.24);
            counterData.Add(-3.4);
            counterData.Add(10.34);

            AggregationResult agg = counterData.CalculateAggregation();

            Assert.AreEqual(expectedSum, agg.Sum);
        }
Example #10
0
        public void Min()
        {
            var          counterData = new MetricsBag();
            const double expectedMin = -1.25;

            for (double i = -1.25; i < 6.8; i += 0.33)
            {
                counterData.Add(i);
            }

            AggregationResult agg = counterData.CalculateAggregation();

            Assert.AreEqual(expectedMin, agg.Min);
        }
Example #11
0
        public void Max()
        {
            var          counterData = new MetricsBag();
            const double expectedMax = 6.67;

            for (double i = -1.25; i < 6.8; i += 0.33)
            {
                counterData.Add(i);
            }

            AggregationResult agg = counterData.CalculateAggregation();

            Assert.AreEqual(expectedMax, Math.Round(agg.Max, 2));
        }
Example #12
0
        public void AddPropertiesThreeProperteriesTest()
        {
            MetricsBag      bag    = new MetricsBag("prop1", "prop2", "prop3");
            MetricTelemetry metric = new MetricTelemetry();

            metric.AddProperties(bag, "p1", "p2", "p3");

            Assert.AreEqual(3, metric.Properties.Count);
            for (int i = 1; i <= metric.Properties.Count; i++)
            {
                KeyValuePair <string, string> prop = metric.Properties.Skip(i - 1).First();
                Assert.IsTrue(metric.Properties.Contains(new KeyValuePair <string, string>("p" + i, "prop" + i)));
            }
        }
Example #13
0
        public void AddPropertiesDefaultNames()
        {
            MetricsBag      bag    = new MetricsBag("prop1", "prop2", "prop3");
            MetricTelemetry metric = new MetricTelemetry("metric1", 123);

            metric.AddProperties(bag, null, null, null);

            Assert.AreEqual(3, metric.Properties.Count);

            for (int i = 1; i <= metric.Properties.Count; i++)
            {
                Assert.IsTrue(metric.Properties.ContainsKey("metric1_p" + i));
            }
        }
Example #14
0
        public void AddPropertiesOnePropertyTest()
        {
            MetricsBag      bag    = new MetricsBag("prop1", null, null);
            MetricTelemetry metric = new MetricTelemetry();

            metric.AddProperties(bag, "p1", "p2", "p3");

            Assert.AreEqual(1, metric.Properties.Count);
            for (int i = 1; i <= metric.Properties.Count; i++)
            {
                KeyValuePair <string, string> prop = metric.Properties.Skip(i - 1).First();
                Assert.AreEqual("p" + i, prop.Key);
                Assert.AreEqual("prop" + i, prop.Value);
            }
        }
Example #15
0
        public void PercentilesSmallest()
        {
            var counterData = new MetricsBag();

            for (int i = 1; i <= 100; i++)
            {
                counterData.Add(i);
            }

            AggregationResult agg = counterData.CalculateAggregation(PercentileCalculation.OrderBySmallest);

            Assert.AreEqual(51, agg.P50);
            Assert.AreEqual(26, agg.P75);
            Assert.AreEqual(11, agg.P90);
            Assert.AreEqual(6, agg.P95);
            Assert.AreEqual(2, agg.P99);
        }
Example #16
0
        public void PercentilesLargest()
        {
            var counterData = new MetricsBag();

            for (int i = 1; i <= 100; i++)
            {
                counterData.Add(i);
            }

            AggregationResult agg = counterData.CalculateAggregation(PercentileCalculation.OrderByLargest);

            Assert.AreEqual(50, agg.P50);
            Assert.AreEqual(75, agg.P75);
            Assert.AreEqual(90, agg.P90);
            Assert.AreEqual(95, agg.P95);
            Assert.AreEqual(99, agg.P99);
        }
        public void PropertyValueIsTruncatedToMaxLength()
        {
            var client = new TelemetryClient();

            client.TrackAggregateMetric("MyCounter", 123.00, "1. This is a long property value", "2. This is a long property value", "3. This is a long property value");

            Assert.AreEqual(1, AggregateMetrics.aggregationSets.Count);

            AggregationSet aggregationSet;

            AggregateMetrics.aggregationSets.TryGetValue(AggregateMetrics.aggregationSets.Keys.First(), out aggregationSet);

            MetricsBag counterData = aggregationSet.RemoveAggregations().First().Value;

            Assert.AreEqual("1. This is a long pr", counterData.Property1);
            Assert.AreEqual("2. This is a long pr", counterData.Property2);
            Assert.AreEqual("3. This is a long pr", counterData.Property3);
        }
Example #18
0
        public void CalculateAggregationPerformanceWithPercentiles()
        {
            var counterData = new MetricsBag();

            const int iterations = 10000000;

            for (int i = 0; i < iterations; i++)
            {
                counterData.Add(i);
            }

            var perfCollector = new PerfCollector(this.TestContext);

            AggregationResult agg = counterData.CalculateAggregation();

            perfCollector.StopAndSubmitPerfData();

            Assert.AreEqual(iterations, agg.Count);
        }
        public void CalculateAggregationPerformanceWithPercentiles()
        {
            var counterData = new MetricsBag();

            const int iterations = 10000000;

            for (int i = 0; i < iterations; i++)
            {
                counterData.Add(i);
            }

            var perfCollector = new PerfCollector(this.TestContext);

            AggregationResult agg = counterData.CalculateAggregation();

            perfCollector.StopAndSubmitPerfData();

            Assert.AreEqual(iterations, agg.Count);
        }
        public void BasicCreateCounterData()
        {
            const double value      = 15.5;
            string       prop1Value = "Prop1-Value";

            var telemetryClient = new TelemetryClient();
            var aggregationSet  = new AggregationSet(telemetryClient, "CounterName");

            aggregationSet.AddAggregation(value, prop1Value);

            Assert.AreEqual("CounterName", aggregationSet.Name);

            var aggregations = aggregationSet.RemoveAggregations();

            MetricsBag counterData = aggregations.Values.First();

            Assert.AreEqual("Prop1-Value", counterData.Property1);

            Assert.AreEqual(value, counterData.CalculateAggregation().Average);
        }
Example #21
0
        public async Task DumpMetrics(MetricsBag metrics)
        {
            logger.LogInformation("Received metrics: {@Metrics}", metrics);

            await Task.Delay(TimeSpan.Zero, Context.ConnectionAborted);
        }
        public void Min()
        {
            var counterData = new MetricsBag();
            const double expectedMin = -1.25;

            for (double i = -1.25; i < 6.8; i += 0.33)
            {
                counterData.Add(i);
            }

            AggregationResult agg = counterData.CalculateAggregation();

            Assert.AreEqual(expectedMin, agg.Min);
        }
        public void PercentilesLargest()
        {
            var counterData = new MetricsBag();

            for (int i = 1; i <= 100; i++)
            {
                counterData.Add(i);
            }

            AggregationResult agg = counterData.CalculateAggregation(PercentileCalculation.OrderByLargest);

            Assert.AreEqual(50, agg.P50);
            Assert.AreEqual(75, agg.P75);
            Assert.AreEqual(90, agg.P90);
            Assert.AreEqual(95, agg.P95);
            Assert.AreEqual(99, agg.P99);
        }
        public void PercentilesSmallest()
        {
            var counterData = new MetricsBag();

            for (int i = 1; i <= 100; i++)
            {
                counterData.Add(i);
            }

            AggregationResult agg = counterData.CalculateAggregation(PercentileCalculation.OrderBySmallest);

            Assert.AreEqual(51, agg.P50);
            Assert.AreEqual(26, agg.P75);
            Assert.AreEqual(11, agg.P90);
            Assert.AreEqual(6, agg.P95);
            Assert.AreEqual(2, agg.P99);
        }
        public void Sum()
        {
            var counterData = new MetricsBag();
            double expectedSum = 8.61;

            counterData.Add(0.43);
            counterData.Add(1.24);
            counterData.Add(-3.4);
            counterData.Add(10.34);

            AggregationResult agg = counterData.CalculateAggregation();

            Assert.AreEqual(expectedSum, agg.Sum);
        }
        public void Max()
        {
            var counterData = new MetricsBag();
            const double expectedMax = 6.67;

            for (double i = -1.25; i < 6.8; i += 0.33)
            {
                counterData.Add(i);
            }

            AggregationResult agg = counterData.CalculateAggregation();

            Assert.AreEqual(expectedMax, Math.Round(agg.Max, 2));
        }