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

Reply via email to