summaryrefslogtreecommitdiffstats
path: root/configd
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2017-10-17 23:51:28 +0200
committerJon Bratseth <bratseth@yahoo-inc.com>2017-10-17 23:51:28 +0200
commit3f28b1429b9b91070451c698f7201286763b86c1 (patch)
tree68dc59b7956be89415420d5c1756d20a4f627839 /configd
parent1c5f99e21b7d1fdd949c619137241c3dd3a901e0 (diff)
parent285906bf803d1105a4e0078ea5aed6d64316c396 (diff)
Merge with master
Diffstat (limited to 'configd')
-rw-r--r--configd/src/apps/sentinel/config-handler.cpp45
-rw-r--r--configd/src/apps/sentinel/metrics.cpp2
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),