diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2017-10-17 23:51:28 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2017-10-17 23:51:28 +0200 |
commit | 3f28b1429b9b91070451c698f7201286763b86c1 (patch) | |
tree | 68dc59b7956be89415420d5c1756d20a4f627839 /configd | |
parent | 1c5f99e21b7d1fdd949c619137241c3dd3a901e0 (diff) | |
parent | 285906bf803d1105a4e0078ea5aed6d64316c396 (diff) |
Merge with master
Diffstat (limited to 'configd')
-rw-r--r-- | configd/src/apps/sentinel/config-handler.cpp | 45 | ||||
-rw-r--r-- | configd/src/apps/sentinel/metrics.cpp | 2 |
2 files changed, 37 insertions, 10 deletions
diff --git a/configd/src/apps/sentinel/config-handler.cpp b/configd/src/apps/sentinel/config-handler.cpp index 1075bc4d7ce..0527982c99f 100644 --- a/configd/src/apps/sentinel/config-handler.cpp +++ b/configd/src/apps/sentinel/config-handler.cpp @@ -395,21 +395,48 @@ ConfigHandler::handleCommand(CommandConnection *c) } } +namespace { + +void +fillRestarts(vespalib::SimpleMetricSnapshot &snapshot, unsigned long restarts) +{ + snapshot.addCount("sentinel.restarts", + "how many times sentinel restarted a service", + restarts); +} + +void +fillRunning(vespalib::SimpleMetricSnapshot &snapshot, unsigned long running) +{ + snapshot.addGauge("sentinel.running", + "how many services the sentinel has running currently", + running); +} + +void +fillUptime(vespalib::SimpleMetricSnapshot &snapshot, long uptime) +{ + snapshot.addGauge("sentinel.uptime", + "how many seconds has the sentinel been running", + uptime); +} + +} // namespace <unnamed> + void ConfigHandler::updateMetrics() { + time_t now = time(nullptr); vespalib::SimpleMetricSnapshot snapshot(_startMetrics.snapshotStart, _startMetrics.snapshotEnd); - snapshot.addCount("sentinel.restarts", "how many times sentinel restarted a service", - _startMetrics.totalRestartsLastSnapshot); - snapshot.addGauge("sentinel.running", "how many services the sentinel has running currently", - _startMetrics.currentlyRunningServices); + fillRestarts(snapshot, _startMetrics.totalRestartsLastSnapshot); + fillRunning(snapshot, _startMetrics.currentlyRunningServices); + fillUptime(snapshot, now - _startMetrics.startedTime); _stateApi.myMetrics.setMetrics(snapshot.asString()); - vespalib::SimpleMetricSnapshot totals(_startMetrics.startedTime, time(nullptr)); - totals.addCount("sentinel.restarts", "how many times sentinel restarted a service", - _startMetrics.totalRestartsCounter); - totals.addGauge("sentinel.running", "how many services the sentinel has running currently", - _startMetrics.currentlyRunningServices); + vespalib::SimpleMetricSnapshot totals(_startMetrics.startedTime, now); + fillRestarts(totals, _startMetrics.totalRestartsCounter); + fillRunning(totals, _startMetrics.currentlyRunningServices); + fillUptime(totals, now - _startMetrics.startedTime); _stateApi.myMetrics.setTotalMetrics(totals.asString()); } diff --git a/configd/src/apps/sentinel/metrics.cpp b/configd/src/apps/sentinel/metrics.cpp index 078dfa275d9..42c61c06b50 100644 --- a/configd/src/apps/sentinel/metrics.cpp +++ b/configd/src/apps/sentinel/metrics.cpp @@ -8,7 +8,7 @@ namespace config { namespace sentinel { StartMetrics::StartMetrics() - : currentlyRunningServices(0), totalRestartsCounter(0), totalRestartsLastPeriod(0), + : currentlyRunningServices(0), totalRestartsCounter(0), totalRestartsLastPeriod(1), lastLoggedTime(0), totalRestartsLastSnapshot(0), snapshotStart(0), |