This is an automated email from the ASF dual-hosted git repository.
rzo1 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/storm.git
The following commit(s) were added to refs/heads/master by this push:
new ec2afb48a STORM-3186: Customizable configuration for metric reporting
interval (#3132)
ec2afb48a is described below
commit ec2afb48a8cba2d77920d1feca25984a1d9850b5
Author: Rishabh Jain <[email protected]>
AuthorDate: Mon Dec 4 04:23:53 2023 -0800
STORM-3186: Customizable configuration for metric reporting interval (#3132)
---------
Co-authored-by: Richard Zowalla <[email protected]>
---
conf/defaults.yaml | 1 +
storm-server/src/main/java/org/apache/storm/DaemonConfig.java | 8 +++++++-
.../storm/daemon/metrics/reporters/ConsolePreparableReporter.java | 7 ++++++-
.../storm/daemon/metrics/reporters/CsvPreparableReporter.java | 7 ++++++-
4 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/conf/defaults.yaml b/conf/defaults.yaml
index cef7cec45..5b2140091 100644
--- a/conf/defaults.yaml
+++ b/conf/defaults.yaml
@@ -366,6 +366,7 @@ pacemaker.thrift.message.size.max: 10485760
#default storm daemon metrics reporter plugins
storm.daemon.metrics.reporter.plugins:
- "org.apache.storm.daemon.metrics.reporters.JmxPreparableReporter"
+storm.daemon.metrics.reporter.interval.secs: 10
storm.metricstore.class: "org.apache.storm.metricstore.rocksdb.RocksDbStore"
storm.metricprocessor.class:
"org.apache.storm.metricstore.NimbusMetricProcessor"
diff --git a/storm-server/src/main/java/org/apache/storm/DaemonConfig.java
b/storm-server/src/main/java/org/apache/storm/DaemonConfig.java
index 76dae92b4..0d3ded3e0 100644
--- a/storm-server/src/main/java/org/apache/storm/DaemonConfig.java
+++ b/storm-server/src/main/java/org/apache/storm/DaemonConfig.java
@@ -78,6 +78,12 @@ public class DaemonConfig implements Validated {
@IsString
public static final String STORM_DAEMON_METRICS_REPORTER_PLUGIN_DOMAIN =
"storm.daemon.metrics.reporter.plugin.domain";
+ /**
+ * We report the metrics with this interval period.
+ */
+ @IsInteger
+ public static final String STORM_DAEMON_METRICS_REPORTER_INTERVAL_SECS =
"storm.daemon.metrics.reporter.interval.secs";
+
/**
* Specify the csv reporter directory for CvsPreparableReporter daemon
metrics reporter.
*/
@@ -339,7 +345,7 @@ public class DaemonConfig implements Validated {
@IsInteger
@IsPositiveNumber
public static final String UI_PORT = "ui.port";
-
+
/**
* Storm UI's title.
*/
diff --git
a/storm-server/src/main/java/org/apache/storm/daemon/metrics/reporters/ConsolePreparableReporter.java
b/storm-server/src/main/java/org/apache/storm/daemon/metrics/reporters/ConsolePreparableReporter.java
index f8b33f50c..8b81128d1 100644
---
a/storm-server/src/main/java/org/apache/storm/daemon/metrics/reporters/ConsolePreparableReporter.java
+++
b/storm-server/src/main/java/org/apache/storm/daemon/metrics/reporters/ConsolePreparableReporter.java
@@ -17,13 +17,17 @@ import com.codahale.metrics.MetricRegistry;
import java.util.Locale;
import java.util.Map;
import java.util.concurrent.TimeUnit;
+
+import org.apache.storm.DaemonConfig;
import org.apache.storm.daemon.metrics.MetricsUtils;
+import org.apache.storm.utils.ObjectReader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ConsolePreparableReporter implements PreparableReporter {
private static final Logger LOG =
LoggerFactory.getLogger(ConsolePreparableReporter.class);
ConsoleReporter reporter = null;
+ Integer reportingIntervalSecs = null;
@Override
public void prepare(MetricRegistry metricsRegistry, Map<String, Object>
daemonConf) {
@@ -46,13 +50,14 @@ public class ConsolePreparableReporter implements
PreparableReporter {
builder.convertDurationsTo(durationUnit);
}
reporter = builder.build();
+ reportingIntervalSecs =
ObjectReader.getInt(daemonConf.get(DaemonConfig.STORM_DAEMON_METRICS_REPORTER_INTERVAL_SECS),
10);
}
@Override
public void start() {
if (reporter != null) {
LOG.debug("Starting...");
- reporter.start(10, TimeUnit.SECONDS);
+ reporter.start(reportingIntervalSecs, TimeUnit.SECONDS);
} else {
throw new IllegalStateException("Attempt to start without
preparing " + getClass().getSimpleName());
}
diff --git
a/storm-server/src/main/java/org/apache/storm/daemon/metrics/reporters/CsvPreparableReporter.java
b/storm-server/src/main/java/org/apache/storm/daemon/metrics/reporters/CsvPreparableReporter.java
index f3fa2f3b5..a58ce19c8 100644
---
a/storm-server/src/main/java/org/apache/storm/daemon/metrics/reporters/CsvPreparableReporter.java
+++
b/storm-server/src/main/java/org/apache/storm/daemon/metrics/reporters/CsvPreparableReporter.java
@@ -18,13 +18,17 @@ import java.io.File;
import java.util.Locale;
import java.util.Map;
import java.util.concurrent.TimeUnit;
+
+import org.apache.storm.DaemonConfig;
import org.apache.storm.daemon.metrics.MetricsUtils;
+import org.apache.storm.utils.ObjectReader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class CsvPreparableReporter implements PreparableReporter {
private static final Logger LOG =
LoggerFactory.getLogger(CsvPreparableReporter.class);
CsvReporter reporter = null;
+ Integer reportingIntervalSecs = null;
@Override
public void prepare(MetricRegistry metricsRegistry, Map<String, Object>
daemonConf) {
@@ -48,13 +52,14 @@ public class CsvPreparableReporter implements
PreparableReporter {
File csvMetricsDir = MetricsUtils.getCsvLogDir(daemonConf);
reporter = builder.build(csvMetricsDir);
+ reportingIntervalSecs =
ObjectReader.getInt(daemonConf.get(DaemonConfig.STORM_DAEMON_METRICS_REPORTER_INTERVAL_SECS),
10);
}
@Override
public void start() {
if (reporter != null) {
LOG.debug("Starting...");
- reporter.start(10, TimeUnit.SECONDS);
+ reporter.start(reportingIntervalSecs, TimeUnit.SECONDS);
} else {
throw new IllegalStateException("Attempt to start without
preparing " + getClass().getSimpleName());
}