public void CalculatedMetricReportsErrorWhenProjectionIsNotDouble() { // ARRANGE var metricInfo = new CalculatedMetricInfo() { Id = "Metric1", TelemetryType = TelemetryType.Request, Projection = "Id", Aggregation = AggregationType.Sum, FilterGroups = new FilterConjunctionGroupInfo[0] }; var telemetry = new RequestTelemetry() { Id = "NotDoubleValue" }; CollectionConfigurationError[] errors; var metric = new CalculatedMetric <RequestTelemetry>(metricInfo, out errors); // ACT try { metric.Project(telemetry); } catch (ArgumentOutOfRangeException e) { // ASSERT Assert.IsTrue(e.ToString().Contains("Id")); return; } Assert.Fail(); }
public void CalculatedMetricProjectsCorrectlyWhenTrain() { // ARRANGE var metricInfo = new CalculatedMetricInfo() { Id = "Metric1", TelemetryType = TelemetryType.Request, Projection = "Context.Operation.Name", Aggregation = AggregationType.Sum, FilterGroups = new FilterConjunctionGroupInfo[0] }; var telemetry = new RequestTelemetry() { Context = { Operation = { Name = "123.56" } } }; // ACT CollectionConfigurationError[] errors; var metric = new CalculatedMetric <RequestTelemetry>(metricInfo, out errors); double projection = metric.Project(telemetry); // ASSERT Assert.AreEqual(AggregationType.Sum, metric.AggregationType); Assert.AreEqual(0, errors.Length); Assert.AreEqual(123.56, projection); }
public void CalculatedMetricProjectsCorrectlyWhenTimeSpan() { // ARRANGE var metricInfo = new CalculatedMetricInfo() { Id = "Metric1", TelemetryType = TelemetryType.Request, Projection = "Duration", Aggregation = AggregationType.Avg, FilterGroups = new FilterConjunctionGroupInfo[0] }; var telemetry = new RequestTelemetry() { Duration = TimeSpan.FromMilliseconds(120) }; // ACT CollectionConfigurationError[] errors; var metric = new CalculatedMetric <RequestTelemetry>(metricInfo, out errors); double projection = metric.Project(telemetry); // ASSERT Assert.AreEqual(AggregationType.Avg, metric.AggregationType); Assert.AreEqual(0, errors.Length); Assert.AreEqual(120, projection); }
public void CalculatedMetricProjectsCorrectlyWhenCustomMetric() { // ARRANGE var metricInfo = new CalculatedMetricInfo() { Id = "Metric1", TelemetryType = TelemetryType.Request, Projection = "CustomMetrics.Metric1", Aggregation = AggregationType.Sum, FilterGroups = new FilterConjunctionGroupInfo[0] }; var telemetry = new RequestTelemetry() { Metrics = { ["Metric1"] = 1.75d } }; // ACT CollectionConfigurationError[] errors; var metric = new CalculatedMetric <RequestTelemetry>(metricInfo, out errors); double projection = metric.Project(telemetry); // ASSERT Assert.AreEqual(AggregationType.Sum, metric.AggregationType); Assert.AreEqual(0, errors.Length); Assert.AreEqual(1.75d, projection); }