diff options
Diffstat (limited to 'metrics')
-rw-r--r-- | metrics/src/vespa/metrics/metricmanager.cpp | 7 | ||||
-rw-r--r-- | metrics/src/vespa/metrics/metricmanager.h | 1 | ||||
-rw-r--r-- | metrics/src/vespa/metrics/state_api_adapter.cpp | 20 |
3 files changed, 15 insertions, 13 deletions
diff --git a/metrics/src/vespa/metrics/metricmanager.cpp b/metrics/src/vespa/metrics/metricmanager.cpp index dcc02696e2d..db2e5affa03 100644 --- a/metrics/src/vespa/metrics/metricmanager.cpp +++ b/metrics/src/vespa/metrics/metricmanager.cpp @@ -24,10 +24,15 @@ MetricManager::ConsumerSpec::ConsumerSpec() = default; MetricManager::ConsumerSpec::~ConsumerSpec() = default; time_t -MetricManager::Timer::getTime() const { +MetricManager::Timer::secondsSinceEpoch() { return std::chrono::duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch()).count(); } +time_t +MetricManager::Timer::getTime() const { + return secondsSinceEpoch(); +} + void MetricManager::assertMetricLockLocked(const MetricLockGuard& g) const { if (!g.monitors(_waiter)) { diff --git a/metrics/src/vespa/metrics/metricmanager.h b/metrics/src/vespa/metrics/metricmanager.h index f2b2926873f..2edf39d67f1 100644 --- a/metrics/src/vespa/metrics/metricmanager.h +++ b/metrics/src/vespa/metrics/metricmanager.h @@ -70,6 +70,7 @@ public: struct Timer { virtual ~Timer() {} + static time_t secondsSinceEpoch(); virtual time_t getTime() const; virtual time_t getTimeInMilliSecs() const { return getTime() * 1000; } }; diff --git a/metrics/src/vespa/metrics/state_api_adapter.cpp b/metrics/src/vespa/metrics/state_api_adapter.cpp index ebb4fb4fd49..20421ebdbb2 100644 --- a/metrics/src/vespa/metrics/state_api_adapter.cpp +++ b/metrics/src/vespa/metrics/state_api_adapter.cpp @@ -15,8 +15,7 @@ StateApiAdapter::getMetrics(const vespalib::string &consumer) if (periods.empty()) { return ""; // no configuration yet } - const metrics::MetricSnapshot &snapshot( - _manager.getMetricSnapshot(guard, periods[0])); + const metrics::MetricSnapshot &snapshot(_manager.getMetricSnapshot(guard, periods[0])); vespalib::asciistream json; vespalib::JsonStream stream(json); metrics::JsonWriter metricJsonWriter(stream); @@ -31,16 +30,13 @@ StateApiAdapter::getTotalMetrics(const vespalib::string &consumer) _manager.updateMetrics(true); metrics::MetricLockGuard guard(_manager.getMetricLock()); _manager.checkMetricsAltered(guard); - time_t currentTime = time(0); - std::unique_ptr<metrics::MetricSnapshot> generated( - new metrics::MetricSnapshot( - "Total metrics from start until current time", 0, - _manager.getTotalMetricSnapshot(guard).getMetrics(), - true)); - _manager.getActiveMetrics(guard) - .addToSnapshot(*generated, false, currentTime); - generated->setFromTime( - _manager.getTotalMetricSnapshot(guard).getFromTime()); + time_t currentTime = MetricManager::Timer::secondsSinceEpoch(); + auto generated = std::make_unique<metrics::MetricSnapshot>( + "Total metrics from start until current time", 0, + _manager.getTotalMetricSnapshot(guard).getMetrics(), + true); + _manager.getActiveMetrics(guard).addToSnapshot(*generated, false, currentTime); + generated->setFromTime(_manager.getTotalMetricSnapshot(guard).getFromTime()); const metrics::MetricSnapshot &snapshot = *generated; vespalib::asciistream json; vespalib::JsonStream stream(json); |