diff options
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.java | 13 |
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(); } |