Logging all benchmark properties during test run feature/redis-performance-testing
authorDan Smith <dasmith@vmware.com>
Thu, 1 Apr 2021 22:17:47 +0000 (15:17 -0700)
committerDan Smith <dasmith@vmware.com>
Thu, 1 Apr 2021 22:36:23 +0000 (15:36 -0700)
geode-benchmarks/build.gradle
harness/src/main/java/org/apache/geode/perftest/TestRunners.java
harness/src/main/java/org/apache/geode/perftest/runner/DefaultTestRunner.java

index 49fa625368ed363726525090e5751f0ec5d4651d..b2f5e26a7d524d133bebb62c47125651f003e149 100644 (file)
@@ -100,9 +100,9 @@ task benchmark(type: Test) {
   systemProperty 'org.slf4j.simpleLogger.dateTimeFormat', 'yyyy-MM-dd HH:mm:ss.SSS'
   systemProperty 'org.slf4j.simpleLogger.showThreadName', 'false'
   systemProperty 'org.slf4j.simpleLogger.showShortLogName', 'true'
-  systemProperty 'TEST_HOSTS', project.findProperty('hosts')
-  systemProperty 'TEST_METADATA', project.findProperty('metadata')
-  systemProperty 'OUTPUT_DIR', outputDir
+  systemProperty 'benchmark.TEST_HOSTS', project.findProperty('hosts')
+  systemProperty 'benchmark.TEST_METADATA', project.findProperty('metadata')
+  systemProperty 'benchmark.OUTPUT_DIR', outputDir
 
   //Set all project properties starting with "benchmark." as system properties in the test
   //JVM
index 680071bcd3a06286f4250237209727efb0b986d0..27fddb3a43545d20e896a0fefe6e36f6b7515baf 100644 (file)
@@ -38,8 +38,8 @@ import org.apache.geode.perftest.runner.DefaultTestRunner;
  */
 public class TestRunners {
 
-  public static final String TEST_HOSTS = "TEST_HOSTS";
-  public static final String OUTPUT_DIR = "OUTPUT_DIR";
+  public static final String TEST_HOSTS = "benchmark.TEST_HOSTS";
+  public static final String OUTPUT_DIR = "benchmark.OUTPUT_DIR";
 
   public static final String[] JVM_ARGS_SMALL_SIZE = new String[] {
       "-XX:CMSInitiatingOccupancyFraction=60",
@@ -91,7 +91,7 @@ public class TestRunners {
   static TestRunner defaultRunner(String testHosts, File outputDir) {
     if (testHosts == null) {
       throw new IllegalStateException(
-          "You must set the TEST_HOSTS system property to a comma separated list of hosts to run the benchmarks on.");
+          "You must set the benchmark.TEST_HOSTS system property to a comma separated list of hosts to run the benchmarks on.");
     }
 
     String userName = System.getProperty("user.name");
index ba4d5a868c11a76d6732ad962359d2dde43a6c62..c26b1c2318ee2d6a58d4a8eda2e21ab52f5a0b0d 100644 (file)
@@ -74,12 +74,16 @@ public class DefaultTestRunner implements TestRunner {
     }
 
     benchmarkOutput.mkdirs();
+    Properties properties = new Properties();
+    addVersionProperties(properties, getVersionProperties());
+    addSystemProperties(properties);
+    logger.info("Benchmark Properties {}", properties);
+
+
     String metadataFilename = outputDir + "/testrunner.properties";
     Path metadataOutput = Paths.get(metadataFilename);
 
     if (!metadataOutput.toFile().exists()) {
-      Properties properties = new Properties(System.getProperties());
-      addVersionProperties(properties, getVersionProperties());
       try (FileWriter writer = new FileWriter(metadataOutput.toFile().getAbsoluteFile())) {
         properties.store(writer, "Benchmark metadata generated while running tests");
       }
@@ -112,6 +116,12 @@ public class DefaultTestRunner implements TestRunner {
 
   }
 
+  private void addSystemProperties(Properties properties) {
+    System.getProperties().stringPropertyNames().stream()
+        .filter(name -> name.startsWith("benchmark."))
+        .forEach(name -> properties.setProperty(name, System.getProperty(name)));
+  }
+
   private void addVersionProperties(Properties jsonMetadata, Properties versionProperties) {
     jsonMetadata.put("benchmark.source_version", versionProperties.getProperty("Product-Version"));
     jsonMetadata.put("benchmark.source_branch", versionProperties.getProperty("Source-Repository"));