This is an automated email from the ASF dual-hosted git repository. upthewaterspout pushed a commit to branch feature/redis-performance-testing in repository https://gitbox.apache.org/repos/asf/geode-benchmarks.git
commit 23703f4702a47a59df82269812e9698f5875726a Author: Dan Smith <[email protected]> AuthorDate: Tue Mar 16 14:26:38 2021 -0700 Cleaning up benchmark logging Reducing the noise in the logging from our benchmark framework. Printing test log messages to stdout when running a benchmark, to watch the progress. --- geode-benchmarks/build.gradle | 5 +++- .../infrastructure/local/LocalInfrastructure.java | 5 +++- .../infrastructure/ssh/QuietSshLoggingConfig.java | 31 ++++++++++++++++++++++ .../infrastructure/ssh/SshInfrastructure.java | 8 +++--- .../geode/perftest/jvms/RemoteJVMFactory.java | 2 +- infrastructure/scripts/aws/run_tests.sh | 7 ++--- 6 files changed, 48 insertions(+), 10 deletions(-) diff --git a/geode-benchmarks/build.gradle b/geode-benchmarks/build.gradle index 6bae20c..ee9e188 100644 --- a/geode-benchmarks/build.gradle +++ b/geode-benchmarks/build.gradle @@ -80,7 +80,10 @@ task benchmark(type: Test) { testClassesDirs = project.sourceSets.main.output.classesDirs classpath = project.sourceSets.main.runtimeClasspath useJUnitPlatform() - testLogging { exceptionFormat = 'full' } + testLogging { + exceptionFormat = 'full' + showStandardStreams = true + } exclude "**/NoopBenchmark.class" diff --git a/harness/src/main/java/org/apache/geode/perftest/infrastructure/local/LocalInfrastructure.java b/harness/src/main/java/org/apache/geode/perftest/infrastructure/local/LocalInfrastructure.java index 596d99d..d5687d2 100644 --- a/harness/src/main/java/org/apache/geode/perftest/infrastructure/local/LocalInfrastructure.java +++ b/harness/src/main/java/org/apache/geode/perftest/infrastructure/local/LocalInfrastructure.java @@ -34,6 +34,8 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.function.Function; import org.apache.commons.io.FileUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.apache.geode.perftest.infrastructure.Infrastructure; @@ -42,6 +44,7 @@ import org.apache.geode.perftest.infrastructure.Infrastructure; * on the local computer, in their own working directories. */ public class LocalInfrastructure implements Infrastructure { + private static final Logger logger = LoggerFactory.getLogger(LocalInfrastructure.class); private final Set<LocalNode> nodes = new LinkedHashSet<>(); private final List<Process> processList = new CopyOnWriteArrayList<>(); @@ -66,7 +69,7 @@ public class LocalInfrastructure implements Infrastructure { builder.inheritIO(); builder.directory(((LocalNode) node).getWorkingDir()); - System.out.println(String.format("Launching %s>%s", ((LocalNode) node).getWorkingDir(), + logger.debug(String.format("Launching %s>%s", ((LocalNode) node).getWorkingDir(), String.join(" ", shellCommand))); Process process = builder.start(); processList.add(process); diff --git a/harness/src/main/java/org/apache/geode/perftest/infrastructure/ssh/QuietSshLoggingConfig.java b/harness/src/main/java/org/apache/geode/perftest/infrastructure/ssh/QuietSshLoggingConfig.java new file mode 100644 index 0000000..fe83672 --- /dev/null +++ b/harness/src/main/java/org/apache/geode/perftest/infrastructure/ssh/QuietSshLoggingConfig.java @@ -0,0 +1,31 @@ +package org.apache.geode.perftest.infrastructure.ssh; + +import net.schmizz.sshj.DefaultConfig; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.slf4j.helpers.NOPLogger; + +class QuietSshLoggingConfig extends DefaultConfig { + private static final Logger logger = LoggerFactory.getLogger(QuietSshLoggingConfig.class); + + @Override + public net.schmizz.sshj.common.LoggerFactory getLoggerFactory() { + if(logger.isDebugEnabled()) { + return super.getLoggerFactory(); + } else { + return new NOPLoggerFactory(); + } + } + + private static class NOPLoggerFactory implements net.schmizz.sshj.common.LoggerFactory { + @Override + public Logger getLogger(String name) { + return NOPLogger.NOP_LOGGER; + } + + @Override + public Logger getLogger(Class<?> clazz) { + return NOPLogger.NOP_LOGGER; + } + } +} diff --git a/harness/src/main/java/org/apache/geode/perftest/infrastructure/ssh/SshInfrastructure.java b/harness/src/main/java/org/apache/geode/perftest/infrastructure/ssh/SshInfrastructure.java index 16765de..db19776 100644 --- a/harness/src/main/java/org/apache/geode/perftest/infrastructure/ssh/SshInfrastructure.java +++ b/harness/src/main/java/org/apache/geode/perftest/infrastructure/ssh/SshInfrastructure.java @@ -37,7 +37,6 @@ import java.util.function.Function; import java.util.stream.Collectors; import net.schmizz.sshj.Config; -import net.schmizz.sshj.DefaultConfig; import net.schmizz.sshj.SSHClient; import net.schmizz.sshj.connection.channel.direct.Session; import net.schmizz.sshj.connection.channel.direct.Signal; @@ -54,7 +53,7 @@ public class SshInfrastructure implements Infrastructure { private final Set<SshNode> hosts; private final String user; private final int port; - public static final Config CONFIG = new DefaultConfig(); + public static final Config CONFIG = new QuietSshLoggingConfig(); private ExecutorService streamReaderThreadPool = Executors.newCachedThreadPool(); public SshInfrastructure(Collection<String> hosts, String user) { @@ -87,7 +86,7 @@ public class SshInfrastructure implements Infrastructure { try (final SSHClient client = getSSHClient(node.getAddress()); final Session session = client.startSession()) { final String script = "'" + String.join("' '", shellCommand) + "'"; - logger.info("Executing {} on {}", script, node.getAddress()); + logger.debug("Executing {} on {}", script, node.getAddress()); try (final Session.Command cmd = session.exec(script)) { final CompletableFuture<Void> copyStdout = copyStreamAsynchronously(cmd.getInputStream(), System.out); @@ -170,7 +169,7 @@ public class SshInfrastructure implements Infrastructure { } for (File file : files) { - logger.info("Copying " + file + " to " + address); + logger.debug("Copying " + file + " to " + address); client.newSCPFileTransfer().upload(new FileSystemFile(file), destDir); } } catch (IOException e) { @@ -209,4 +208,5 @@ public class SshInfrastructure implements Infrastructure { return host; } } + } diff --git a/harness/src/main/java/org/apache/geode/perftest/jvms/RemoteJVMFactory.java b/harness/src/main/java/org/apache/geode/perftest/jvms/RemoteJVMFactory.java index 665d726..b14817f 100644 --- a/harness/src/main/java/org/apache/geode/perftest/jvms/RemoteJVMFactory.java +++ b/harness/src/main/java/org/apache/geode/perftest/jvms/RemoteJVMFactory.java @@ -161,7 +161,7 @@ public class RemoteJVMFactory { X509Certificate[] chain = new X509Certificate[1]; chain[0] = keyGen.getSelfCertificate(new X500Name("CN=ROOT"), DAYS.toSeconds(365)); - logger.info("Certificate : {}", chain[0]); + logger.debug("Certificate : {}", chain[0]); KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); ks.load(null, null); diff --git a/infrastructure/scripts/aws/run_tests.sh b/infrastructure/scripts/aws/run_tests.sh index f1332b7..250d23c 100755 --- a/infrastructure/scripts/aws/run_tests.sh +++ b/infrastructure/scripts/aws/run_tests.sh @@ -17,7 +17,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -x -e -o pipefail +set -e -o pipefail DEFAULT_BENCHMARK_REPO='https://github.com/apache/geode-benchmarks' BENCHMARK_REPO=${DEFAULT_BENCHMARK_REPO} @@ -224,6 +224,7 @@ remoteShell \ mkdir -p ${OUTPUT} -scp ${SSH_OPTIONS} -r geode@${FIRST_INSTANCE}:geode-benchmarks/geode-benchmarks/build/reports ${OUTPUT}/reports +scp ${SSH_OPTIONS} -q -r geode@${FIRST_INSTANCE}:geode-benchmarks/geode-benchmarks/build/reports ${OUTPUT}/reports BENCHMARK_DIRECTORY="$(remoteShell ls -l geode-benchmarks/geode-benchmarks/build/ | grep benchmark | awk 'NF>1{print $NF}')" -scp ${SSH_OPTIONS} -r geode@${FIRST_INSTANCE}:geode-benchmarks/geode-benchmarks/build/${BENCHMARK_DIRECTORY} ${OUTPUT} +scp ${SSH_OPTIONS} -q -r geode@${FIRST_INSTANCE}:geode-benchmarks/geode-benchmarks/build/${BENCHMARK_DIRECTORY} ${OUTPUT} +echo "Benchmark results saved in ${OUTPUT}"
