/// <summary> /// When serializing the result data to benchview this is called to determine if any of the metrics should be reported differently /// than they were collected. Both web apps use this to collect several measurements in each iteration, then present those measurements /// to benchview as if each was the Duration metric of a distinct scenario test with its own set of iterations. /// </summary> public override bool TryGetBenchviewCustomMetricReporting(Metric originalMetric, out Metric newMetric, out string newScenarioModelName) { if (originalMetric.Equals(TrainingMetric)) { newScenarioModelName = "Training"; } else if (originalMetric.Equals(FirstSearchMetric)) { newScenarioModelName = "First Search"; } else if (originalMetric.Equals(MedianSearchMetric)) { newScenarioModelName = "Median Search"; } else { return(base.TryGetBenchviewCustomMetricReporting(originalMetric, out newMetric, out newScenarioModelName)); } newMetric = Metric.ElapsedTimeMilliseconds; return(true); }
/// <summary> /// When serializing the result data to benchview this is called to determine if any of the metrics should be reported differently /// than they were collected. Both web apps use this to collect several measurements in each iteration, then present those measurements /// to benchview as if each was the Duration metric of a distinct scenario test with its own set of iterations. /// </summary> public override bool TryGetBenchviewCustomMetricReporting(Metric originalMetric, out Metric newMetric, out string newScenarioModelName) { if (originalMetric.Equals(StartupMetric)) { newScenarioModelName = "Startup"; } else if (originalMetric.Equals(FirstRequestMetric)) { newScenarioModelName = "First Request"; } else if (originalMetric.Equals(MedianResponseMetric)) { newScenarioModelName = "Median Response"; } else { return(base.TryGetBenchviewCustomMetricReporting(originalMetric, out newMetric, out newScenarioModelName)); } newMetric = Metric.ElapsedTimeMilliseconds; return(true); }
/// <summary> /// Converts IterationResult into Benchview's IterationModel, remaping and filtering the metrics reported /// </summary> static IterationModel ConvertIterationResult(IterationResult iterationResult, Func <Metric, Metric> metricMapping) { IterationModel iterationModel = new IterationModel(); iterationModel.Iteration = new Dictionary <string, double>(); foreach (KeyValuePair <Metric, double> measurement in iterationResult.Measurements) { Metric finalMetric = metricMapping(measurement.Key); if (!finalMetric.Equals(default(Metric))) { iterationModel.Iteration.Add(finalMetric.Name, measurement.Value); } } return(iterationModel); }