mirror of
https://github.com/nosqlbench/nosqlbench.git
synced 2025-02-25 18:55:28 -06:00
moving creation logic to NBCreators
This commit is contained in:
parent
8abb35b818
commit
6e96c9c7aa
@ -436,12 +436,12 @@ public class NBCLI implements Function<String[], Integer>, NBLabeledElement {
|
||||
}
|
||||
session.create().pushReporter(uri, intervalMs, NBLabels.forKV());
|
||||
});
|
||||
for (
|
||||
final NBCLIOptions.LoggerConfigData histoLogger : options.getHistoLoggerConfigs())
|
||||
session.addHistoLogger(sessionName, histoLogger.pattern, histoLogger.file, histoLogger.millis);
|
||||
for (
|
||||
final NBCLIOptions.LoggerConfigData statsLogger : options.getStatsLoggerConfigs())
|
||||
session.addStatsLogger(sessionName, statsLogger.pattern, statsLogger.file, statsLogger.millis);
|
||||
for (final NBCLIOptions.LoggerConfigData histoLogger : options.getHistoLoggerConfigs()) {
|
||||
session.create().histoLogger(sessionName, histoLogger.pattern, histoLogger.file, histoLogger.millis);
|
||||
}
|
||||
for (final NBCLIOptions.LoggerConfigData statsLogger : options.getStatsLoggerConfigs()) {
|
||||
session.create().histoStatsLogger(sessionName, statsLogger.pattern, statsLogger.file, statsLogger.millis);
|
||||
}
|
||||
|
||||
ExecutionResult sessionResult = session.apply(options.getCommands());
|
||||
logger.info(sessionResult);
|
||||
|
@ -48,7 +48,6 @@ import java.util.regex.Pattern;
|
||||
*/
|
||||
public class NBSession extends NBHeartbeatComponent implements Function<List<Cmd>, ExecutionResult>, NBTokenWords {
|
||||
private final static Logger logger = LogManager.getLogger(NBSession.class);
|
||||
private static final List<MetricsCloseable> metricsCloseables = new ArrayList<>();
|
||||
// private final ClientSystemMetricChecker clientMetricChecker;
|
||||
|
||||
private final Map<String, NBBufferedContainer> containers = new ConcurrentHashMap<>();
|
||||
@ -133,43 +132,5 @@ public class NBSession extends NBHeartbeatComponent implements Function<List<Cmd
|
||||
);
|
||||
}
|
||||
|
||||
public void addHistoLogger(String sessionName, String pattern, String filename, long millis) {
|
||||
if (filename.contains("_SESSION_")) {
|
||||
filename = filename.replace("_SESSION_", sessionName);
|
||||
}
|
||||
Pattern compiledPattern = Pattern.compile(pattern);
|
||||
File logfile = new File(filename);
|
||||
|
||||
HistoIntervalLogger histoIntervalLogger =
|
||||
new HistoIntervalLogger(this, sessionName, logfile, compiledPattern, millis);
|
||||
logger.debug(() -> "Adding " + histoIntervalLogger + " to session " + sessionName);
|
||||
metricsCloseables.add(histoIntervalLogger);
|
||||
}
|
||||
|
||||
public void addStatsLogger(String sessionName, String pattern, String filename, long millis) {
|
||||
if (filename.contains("_SESSION_")) {
|
||||
filename = filename.replace("_SESSION_", sessionName);
|
||||
}
|
||||
Pattern compiledPattern = Pattern.compile(pattern);
|
||||
File logfile = new File(filename);
|
||||
|
||||
HistoStatsLogger histoStatsLogger =
|
||||
new HistoStatsLogger(this, sessionName, logfile, compiledPattern, millis, TimeUnit.NANOSECONDS);
|
||||
logger.debug(() -> "Adding " + histoStatsLogger + " to session " + sessionName);
|
||||
metricsCloseables.add(histoStatsLogger);
|
||||
}
|
||||
|
||||
/**
|
||||
* This should be called at the end of a process, so that open intervals can be finished, logs closed properly,
|
||||
* etc.
|
||||
*/
|
||||
public static void closeMetrics() {
|
||||
logger.trace("Closing all registered metrics closable objects.");
|
||||
for (MetricsCloseable metricsCloseable : metricsCloseables) {
|
||||
logger.trace(() -> "closing metrics closeable: " + metricsCloseable);
|
||||
metricsCloseable.closeMetrics();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -21,6 +21,8 @@ import io.nosqlbench.nb.api.components.events.ComponentOutOfScope;
|
||||
import io.nosqlbench.nb.api.components.events.DownEvent;
|
||||
import io.nosqlbench.nb.api.components.events.NBEvent;
|
||||
import io.nosqlbench.nb.api.components.events.UpEvent;
|
||||
import io.nosqlbench.nb.api.engine.metrics.HistoIntervalLogger;
|
||||
import io.nosqlbench.nb.api.engine.metrics.MetricsCloseable;
|
||||
import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetric;
|
||||
import io.nosqlbench.nb.api.labels.NBLabels;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
@ -40,6 +42,7 @@ public class NBBaseComponent extends NBBaseComponentMetrics implements NBCompone
|
||||
protected Exception error;
|
||||
protected long started_ns, teardown_ns, closed_ns, errored_ns, started_epoch_ms;
|
||||
protected NBInvokableState state = NBInvokableState.STARTING;
|
||||
private static final List<MetricsCloseable> metricsCloseables = new ArrayList<>();
|
||||
|
||||
public NBBaseComponent(NBComponent parentComponent) {
|
||||
this(parentComponent, NBLabels.forKV());
|
||||
@ -133,6 +136,9 @@ public class NBBaseComponent extends NBBaseComponentMetrics implements NBCompone
|
||||
for (NBComponent child : children) {
|
||||
child.close();
|
||||
}
|
||||
for (MetricsCloseable metricsCloseable : metricsCloseables) {
|
||||
metricsCloseable.closeMetrics();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
onError(e);
|
||||
} finally {
|
||||
@ -302,4 +308,9 @@ public class NBBaseComponent extends NBBaseComponentMetrics implements NBCompone
|
||||
public long started_epoch_ms() {
|
||||
return this.started_epoch_ms;
|
||||
}
|
||||
|
||||
public void addMetricsCloseable(MetricsCloseable metric) {
|
||||
metricsCloseables.add(metric);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -18,8 +18,7 @@ package io.nosqlbench.nb.api.components.core;
|
||||
|
||||
import io.nosqlbench.nb.api.csvoutput.CsvOutputPluginWriter;
|
||||
import com.codahale.metrics.Meter;
|
||||
import io.nosqlbench.nb.api.engine.metrics.DeltaHdrHistogramReservoir;
|
||||
import io.nosqlbench.nb.api.engine.metrics.DoubleSummaryGauge;
|
||||
import io.nosqlbench.nb.api.engine.metrics.*;
|
||||
import io.nosqlbench.nb.api.engine.metrics.instruments.*;
|
||||
import io.nosqlbench.nb.api.engine.metrics.reporters.*;
|
||||
import io.nosqlbench.nb.api.histo.HdrHistoLog;
|
||||
@ -37,11 +36,14 @@ import com.codahale.metrics.MetricAttribute;
|
||||
import com.codahale.metrics.MetricFilter;
|
||||
import org.apache.logging.log4j.Marker;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.PrintStream;
|
||||
import java.util.*;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class NBCreators {
|
||||
|
||||
@ -159,6 +161,32 @@ public class NBCreators {
|
||||
return new NBShutdownHook(component);
|
||||
}
|
||||
|
||||
public void histoLogger(String sessionName, String pattern, String filename, long millis) {
|
||||
if (filename.contains("_SESSION_")) {
|
||||
filename = filename.replace("_SESSION_", sessionName);
|
||||
}
|
||||
Pattern compiledPattern = Pattern.compile(pattern);
|
||||
File logfile = new File(filename);
|
||||
|
||||
HistoIntervalLogger histoIntervalLogger =
|
||||
new HistoIntervalLogger(base, sessionName, logfile, compiledPattern, millis);
|
||||
logger.debug(() -> "Adding " + histoIntervalLogger + " to session " + sessionName);
|
||||
base.addMetricsCloseable(histoIntervalLogger);
|
||||
}
|
||||
|
||||
public void histoStatsLogger(String sessionName, String pattern, String filename, long millis) {
|
||||
if (filename.contains("_SESSION_")) {
|
||||
filename = filename.replace("_SESSION_", sessionName);
|
||||
}
|
||||
Pattern compiledPattern = Pattern.compile(pattern);
|
||||
File logfile = new File(filename);
|
||||
|
||||
HistoStatsLogger histoStatsLogger =
|
||||
new HistoStatsLogger(base, sessionName, logfile, compiledPattern, millis, TimeUnit.NANOSECONDS);
|
||||
logger.debug(() -> "Adding " + histoStatsLogger + " to session " + sessionName);
|
||||
base.addMetricsCloseable(histoStatsLogger);
|
||||
}
|
||||
|
||||
public static class Log4jReporterBuilder {
|
||||
private final NBComponent component;
|
||||
private Logger logger = LogManager.getLogger(Log4JMetricsReporter.class);
|
||||
|
Loading…
Reference in New Issue
Block a user