summaryrefslogtreecommitdiffstats
path: root/configserver/src/main/java/com/yahoo/vespa/config/server/monitoring/Metrics.java
diff options
context:
space:
mode:
Diffstat (limited to 'configserver/src/main/java/com/yahoo/vespa/config/server/monitoring/Metrics.java')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/monitoring/Metrics.java13
1 files changed, 10 insertions, 3 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/monitoring/Metrics.java b/configserver/src/main/java/com/yahoo/vespa/config/server/monitoring/Metrics.java
index fe9364ed33e..5813c3eb04a 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/monitoring/Metrics.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/monitoring/Metrics.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.config.server.monitoring;
import com.google.inject.Inject;
+import com.yahoo.cloud.config.ZookeeperServerConfig;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.TenantName;
import com.yahoo.container.jdisc.config.HealthMonitorConfig;
@@ -32,19 +33,23 @@ public class Metrics extends TimerTask implements MetricUpdaterFactory {
private final Counter failedRequests;
private final Counter procTimeCounter;
private final Metric metric;
+ private final ZKMetricUpdater zkMetricUpdater;
// TODO The map is the key for now
private final Map<Map<String, String>, MetricUpdater> metricUpdaters = new ConcurrentHashMap<>();
private final Timer timer = new Timer();
@Inject
- public Metrics(Metric metric, Statistics statistics, HealthMonitorConfig healthMonitorConfig) {
+ public Metrics(Metric metric, Statistics statistics, HealthMonitorConfig healthMonitorConfig, ZookeeperServerConfig zkServerConfig) {
this.metric = metric;
requests = createCounter(METRIC_REQUESTS, statistics);
failedRequests = createCounter(METRIC_FAILED_REQUESTS, statistics);
procTimeCounter = createCounter("procTime", statistics);
- timer.scheduleAtFixedRate(this, 5000, (long) (healthMonitorConfig.snapshot_interval() * 1000));
+
log.log(LogLevel.DEBUG, "Metric update interval is " + healthMonitorConfig.snapshot_interval() + " seconds");
+ long intervalMs = (long) (healthMonitorConfig.snapshot_interval() * 1000);
+ timer.scheduleAtFixedRate(this, 5000, intervalMs);
+ zkMetricUpdater = new ZKMetricUpdater(zkServerConfig, 4500, intervalMs);
}
public static Metrics createTestMetrics() {
@@ -52,7 +57,8 @@ public class Metrics extends TimerTask implements MetricUpdaterFactory {
Statistics.NullImplementation statistics = new Statistics.NullImplementation();
HealthMonitorConfig.Builder builder = new HealthMonitorConfig.Builder();
builder.snapshot_interval(60.0);
- return new Metrics(metric, statistics, new HealthMonitorConfig(builder));
+ ZookeeperServerConfig.Builder zkBuilder = new ZookeeperServerConfig.Builder().myid(1);
+ return new Metrics(metric, statistics, new HealthMonitorConfig(builder), new ZookeeperServerConfig(zkBuilder));
}
private Counter createCounter(String name, Statistics statistics) {
@@ -120,6 +126,7 @@ public class Metrics extends TimerTask implements MetricUpdaterFactory {
}
}
setRegularMetrics();
+ zkMetricUpdater.getZKMetrics().forEach((attr, val) -> metric.set(attr, val, null));
timer.purge();
}