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); } }
public void AddPropertiesNoPropertiesTest() { MetricsBag bag = new MetricsBag(); MetricTelemetry metric = new MetricTelemetry(); metric.AddProperties(bag, "p1", "p2", "p3"); Assert.AreEqual(0, metric.Properties.Count); }
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)); }
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 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 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 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)); }
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))); } }
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)); } }
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); } }
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 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); }
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); }
public async Task DumpMetrics(MetricsBag metrics) { logger.LogInformation("Received metrics: {@Metrics}", metrics); await Task.Delay(TimeSpan.Zero, Context.ConnectionAborted); }