upthewaterspout closed pull request #28: Adding additional metrics of standard error URL: https://github.com/apache/geode-benchmarks/pull/28
This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/harness/src/main/java/org/apache/geode/perftest/yardstick/analysis/YardstickHdrHistogramParser.java b/harness/src/main/java/org/apache/geode/perftest/yardstick/analysis/YardstickHdrHistogramParser.java index 19d1749..a52ba4a 100644 --- a/harness/src/main/java/org/apache/geode/perftest/yardstick/analysis/YardstickHdrHistogramParser.java +++ b/harness/src/main/java/org/apache/geode/perftest/yardstick/analysis/YardstickHdrHistogramParser.java @@ -64,6 +64,8 @@ public void reset() { results.add(new ResultData("99.9th percentile latency", histogram.getValueAtPercentile(99.9))); results.add(new ResultData("average latency", histogram.getMean())); results.add(new ResultData("latency standard deviation", histogram.getStdDeviation())); + results.add(new ResultData("latency standard error", + histogram.getStdDeviation() / Math.sqrt(histogram.getTotalCount()))); return results; } diff --git a/harness/src/main/java/org/apache/geode/perftest/yardstick/analysis/YardstickThroughputSensorParser.java b/harness/src/main/java/org/apache/geode/perftest/yardstick/analysis/YardstickThroughputSensorParser.java index ff084b8..c873c8c 100644 --- a/harness/src/main/java/org/apache/geode/perftest/yardstick/analysis/YardstickThroughputSensorParser.java +++ b/harness/src/main/java/org/apache/geode/perftest/yardstick/analysis/YardstickThroughputSensorParser.java @@ -60,7 +60,12 @@ public void reset() { @Override public List<ResultData> getProbeResults() { List<ResultData> results = new ArrayList<>(1); - results.add(new ResultData(probeResultDescription, getAverageThroughput())); + double averageThroughput = getAverageThroughput(); + double standardDeviation = getStandardDeviation(averageThroughput); + double standardError = standardDeviation / Math.sqrt(datapoints.size()); + results.add(new ResultData(probeResultDescription, averageThroughput)); + results.add(new ResultData("ops/second standard error", standardError)); + results.add(new ResultData("ops/second standard deviation", standardDeviation)); return results; } @@ -73,6 +78,15 @@ public double getAverageThroughput() { return accumulator / datapoints.size(); } + public double getStandardDeviation(double average) { + double accumulator = 0; + for (SensorDatapoint datapoint : datapoints) { + double deviation = datapoint.opsPerSec - average; + accumulator += deviation * deviation; + } + return Math.sqrt(accumulator / (datapoints.size() - 1)); + } + private static class SensorDatapoint { private int second; private double opsPerSec; diff --git a/harness/src/test/java/org/apache/geode/perftest/analysis/BenchmarkRunAnalyzerTest.java b/harness/src/test/java/org/apache/geode/perftest/analysis/BenchmarkRunAnalyzerTest.java index 57609f7..61a9de9 100644 --- a/harness/src/test/java/org/apache/geode/perftest/analysis/BenchmarkRunAnalyzerTest.java +++ b/harness/src/test/java/org/apache/geode/perftest/analysis/BenchmarkRunAnalyzerTest.java @@ -135,9 +135,13 @@ public void verifyResultHarvester() throws IOException { BenchmarkRunResult expectedBenchmarkResult = new BenchmarkRunResult(); BenchmarkRunResult.BenchmarkResult resultA = expectedBenchmarkResult.addBenchmark("BenchmarkA"); resultA.addProbeResult(YardstickThroughputSensorParser.probeResultDescription, 25, 20); + resultA.addProbeResult("ops/second standard error", 2.36, 2.36); + resultA.addProbeResult("ops/second standard deviation", 7.45, 7.45); resultA.addProbeResult(YardstickPercentileSensorParser.probeResultDescription, 200, 300); BenchmarkRunResult.BenchmarkResult resultB = expectedBenchmarkResult.addBenchmark("BenchmarkB"); resultB.addProbeResult(YardstickThroughputSensorParser.probeResultDescription, 20, 25); + resultB.addProbeResult("ops/second standard error", 2.36, 2.77); + resultB.addProbeResult("ops/second standard deviation", 7.45, 10.38); resultB.addProbeResult(YardstickPercentileSensorParser.probeResultDescription, 400, 400); assertEquals(expectedBenchmarkResult, results); } ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services