From 16e3e587aa84005ee1dbaf9b21aecf8a9fb7297c Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Sat, 9 Dec 2023 17:17:08 -0600 Subject: [PATCH] enhance console reporter --- .../main/java/io/nosqlbench/engine/cli/NBCLI.java | 8 +++++++- .../engine/metrics/reporters/ConsoleReporter.java | 14 +++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/engine-cli/src/main/java/io/nosqlbench/engine/cli/NBCLI.java b/engine-cli/src/main/java/io/nosqlbench/engine/cli/NBCLI.java index 646d730d3..09534b25d 100644 --- a/engine-cli/src/main/java/io/nosqlbench/engine/cli/NBCLI.java +++ b/engine-cli/src/main/java/io/nosqlbench/engine/cli/NBCLI.java @@ -413,6 +413,11 @@ public class NBCLI implements Function, NBLabeledElement { ), sessionName ); + // TODO: Decide whether this should be part of ctor consistency + Map.of( + "summary", options.getReportSummaryTo(), + "logsdir", options.getLogsDirectory().toString() + ).forEach(session::setComponentProp); options.wantsReportCsvTo().ifPresent(cfg -> { MetricInstanceFilter filter = new MetricInstanceFilter(); @@ -439,7 +444,8 @@ public class NBCLI implements Function, NBLabeledElement { ExecutionResult sessionResult = session.apply(options.getCommands()); - sessionResult.printSummary(System.out); +// sessionResult.printSummary(System.out); + logger.info(sessionResult); return sessionResult.getStatus().code; } diff --git a/nb-api/src/main/java/io/nosqlbench/nb/api/engine/metrics/reporters/ConsoleReporter.java b/nb-api/src/main/java/io/nosqlbench/nb/api/engine/metrics/reporters/ConsoleReporter.java index bd5b0f163..3209bc499 100644 --- a/nb-api/src/main/java/io/nosqlbench/nb/api/engine/metrics/reporters/ConsoleReporter.java +++ b/nb-api/src/main/java/io/nosqlbench/nb/api/engine/metrics/reporters/ConsoleReporter.java @@ -41,9 +41,10 @@ public class ConsoleReporter extends PeriodicTaskComponent { private final long rateFactor; private final String durationUnit = TimeUnit.NANOSECONDS.toString().toLowerCase(Locale.US); private final long durationFactor = TimeUnit.NANOSECONDS.toNanos(1); + public ConsoleReporter(NBComponent node, NBLabels extraLabels, long millis, boolean oneLastTime, PrintStream output, Set disabledMetricAttributes) { - super(node, extraLabels, millis, oneLastTime,"REPORT-CONSOLE"); + super(node, extraLabels, millis, oneLastTime, "REPORT-CONSOLE"); this.output = output; this.dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM, @@ -190,8 +191,10 @@ public class ConsoleReporter extends PeriodicTaskComponent { /** * Print only if the attribute is enabled * - * @param type Metric attribute - * @param status Status to be logged + * @param type + * Metric attribute + * @param status + * Status to be logged */ private void printIfEnabled(MetricAttribute type, String status) { if (getDisabledMetricAttributes().contains(type)) { @@ -242,4 +245,9 @@ public class ConsoleReporter extends PeriodicTaskComponent { } report(gauges, counters, histograms, meters, timers); } + + public void reportCountsOnce(List summaryMetrics) { + // TODO: implement counts only renderer + // TODO: resolve ambiguity around reporting counts only or reporting nothing for short sessions + } }