You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by sm...@apache.org on 2019/01/17 18:35:28 UTC
[geode-benchmarks] branch develop updated: GEODE-6147 - Fail
benchmark task if average latency change is 5+% (#43)
This is an automated email from the ASF dual-hosted git repository.
smgoller 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 d98d389 GEODE-6147 - Fail benchmark task if average latency change is 5+% (#43)
d98d389 is described below
commit d98d389fa775e09e5f68b9dc9a13acdea5b130fa
Author: Sean Goller <se...@goller.net>
AuthorDate: Thu Jan 17 10:35:24 2019 -0800
GEODE-6147 - Fail benchmark task if average latency change is 5+% (#43)
* GEODE-6147 - Fail benchmark task if average latency change is 5+%
* Change ratio to difference
* Add difference calculation to ProbeResult
* Fail analyzeRun task if average latency difference is >= 5%
Authored-by: Sean Goller <sg...@pivotal.io>
---
.../apache/geode/perftest/analysis/Analyzer.java | 25 ++++++++++++++++++++--
.../perftest/analysis/BenchmarkRunResult.java | 18 ++++++++++------
2 files changed, 34 insertions(+), 9 deletions(-)
diff --git a/harness/src/main/java/org/apache/geode/perftest/analysis/Analyzer.java b/harness/src/main/java/org/apache/geode/perftest/analysis/Analyzer.java
index 5e288f1..b88944e 100644
--- a/harness/src/main/java/org/apache/geode/perftest/analysis/Analyzer.java
+++ b/harness/src/main/java/org/apache/geode/perftest/analysis/Analyzer.java
@@ -61,7 +61,28 @@ public class Analyzer {
analyzer.addProbe(new YardstickPercentileSensorParser());
analyzer.addProbe(new YardstickHdrHistogramParser());
- analyzer.analyzeTestRun(baselineResultDir, testResultDir)
- .writeResult(new PrintWriter(System.out));
+ BenchmarkRunResult benchmarkRunResult =
+ analyzer.analyzeTestRun(baselineResultDir, testResultDir);
+ benchmarkRunResult.writeResult(new PrintWriter(System.out));
+ /* throw exc if failed? */
+
+ StringBuilder message = new StringBuilder();
+ for (BenchmarkRunResult.BenchmarkResult benchmarkResult : benchmarkRunResult
+ .getBenchmarkResults()) {
+ for (BenchmarkRunResult.ProbeResult probeResult : benchmarkResult.probeResults) {
+ if (probeResult.description.equals("average latency")) {
+ if (probeResult.getDifference() >= 0.05) {
+ message.append("BENCHMARK FAILED: ").append(benchmarkResult.name)
+ .append(" average latency is 5% worse than baseline.\n");
+ }
+ }
+ }
+ }
+
+ if (message.length() > 0) {
+ System.out.println(message);
+ System.exit(1);
+ }
+
}
}
diff --git a/harness/src/main/java/org/apache/geode/perftest/analysis/BenchmarkRunResult.java b/harness/src/main/java/org/apache/geode/perftest/analysis/BenchmarkRunResult.java
index 96b6d42..db37a99 100644
--- a/harness/src/main/java/org/apache/geode/perftest/analysis/BenchmarkRunResult.java
+++ b/harness/src/main/java/org/apache/geode/perftest/analysis/BenchmarkRunResult.java
@@ -40,7 +40,7 @@ public class BenchmarkRunResult implements Serializable {
stream.print(String.format(" %30s", probeResult.description));
stream.print(String.format(" Baseline: %12.2f", probeResult.baseline));
stream.print(String.format(" Test: %12.2f", probeResult.test));
- stream.print(String.format(" Ratio: %2.2f", probeResult.test / probeResult.baseline));
+ stream.print(String.format(" Difference: %+6.1f%%", probeResult.getDifference() * 100));
stream.println();
}
}
@@ -83,8 +83,8 @@ public class BenchmarkRunResult implements Serializable {
}
static class BenchmarkResult implements Serializable {
- private final String name;
- private final List<ProbeResult> probeResults = new ArrayList<>();
+ final String name;
+ final List<ProbeResult> probeResults = new ArrayList<>();
public BenchmarkResult(String name) {
this.name = name;
@@ -114,10 +114,10 @@ public class BenchmarkRunResult implements Serializable {
}
}
- private static class ProbeResult implements Serializable {
- private final String description;
- private final double baseline;
- private final double test;
+ static class ProbeResult implements Serializable {
+ final String description;
+ final double baseline;
+ final double test;
public ProbeResult(String description, double baseline, double test) {
this.description = description;
@@ -125,6 +125,10 @@ public class BenchmarkRunResult implements Serializable {
this.test = test;
}
+ public double getDifference() {
+ return (test - baseline) / baseline;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) {