You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by up...@apache.org on 2019/01/03 19:45:05 UTC

[geode-benchmarks] branch develop updated: Adding additional metrics of standard error

This is an automated email from the ASF dual-hosted git repository.

upthewaterspout pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode-benchmarks.git


The following commit(s) were added to refs/heads/develop by this push:
     new ccac4cd  Adding additional metrics of standard error
ccac4cd is described below

commit ccac4cd54da42a83233faf6712932c6a7c9b6f84
Author: Dan Smith <ds...@pivotal.io>
AuthorDate: Thu Jan 3 11:44:59 2019 -0800

    Adding additional metrics of standard error
    
    Adding additional metrics of standard error
---
 .../yardstick/analysis/YardstickHdrHistogramParser.java  |  2 ++
 .../analysis/YardstickThroughputSensorParser.java        | 16 +++++++++++++++-
 .../perftest/analysis/BenchmarkRunAnalyzerTest.java      |  4 ++++
 3 files changed, 21 insertions(+), 1 deletion(-)

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 class YardstickHdrHistogramParser implements ProbeResultParser {
     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 class YardstickThroughputSensorParser implements ProbeResultParser {
   @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 class YardstickThroughputSensorParser implements ProbeResultParser {
     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 class BenchmarkRunAnalyzerTest {
     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);
   }