diff options
author | Arne Juul <arnej@yahoo-inc.com> | 2017-11-22 15:49:11 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahoo-inc.com> | 2017-12-04 13:26:58 +0000 |
commit | 214d88c8db868077a318f49d51b0529c911cf6f9 (patch) | |
tree | 4a37c1b9d84136ddba721a0ab741456a102235bc /logd | |
parent | f207f5403b91df0fb9fe6679c45ba93fcc00ab5b (diff) |
add metrics engine
Diffstat (limited to 'logd')
-rw-r--r-- | logd/src/logd/state.cpp | 17 | ||||
-rw-r--r-- | logd/src/logd/state.h | 8 |
2 files changed, 22 insertions, 3 deletions
diff --git a/logd/src/logd/state.cpp b/logd/src/logd/state.cpp index b73183d5987..232c300befa 100644 --- a/logd/src/logd/state.cpp +++ b/logd/src/logd/state.cpp @@ -4,10 +4,25 @@ LOG_SETUP(""); #include "state.h" +#include <vespa/vespalib/metrics/simple_metrics_collector.h> namespace logdemon { +vespalib::metrics::CollectorConfig minute() +{ + vespalib::metrics::CollectorConfig conf; + conf.sliding_window_seconds = 60; + return conf; +} + + StateReporter::StateReporter() + : _port(-1), + _server(), + _health(), + _components(), + _metrics(vespalib::metrics::SimpleMetricsCollector::create(minute())), + _producer(_metrics) { } @@ -16,7 +31,7 @@ StateReporter::setStatePort(int statePort) { if (statePort != _port) { _port = statePort; - _server.reset(new vespalib::StateServer(_port, _health, _metrics, _components)); + _server.reset(new vespalib::StateServer(_port, _health, _producer, _components)); LOG(info, "state server listening on port %d", _server->getListenPort()); } } diff --git a/logd/src/logd/state.h b/logd/src/logd/state.h index 7abcc7eb93c..845aab502a4 100644 --- a/logd/src/logd/state.h +++ b/logd/src/logd/state.h @@ -3,9 +3,10 @@ #include <vespa/vespalib/net/state_server.h> #include <vespa/vespalib/net/simple_health_producer.h> -#include <vespa/vespalib/net/simple_metrics_producer.h> #include <vespa/vespalib/net/simple_component_config_producer.h> #include <vespa/vespalib/net/generic_state_handler.h> +#include <vespa/vespalib/metrics/metrics_collector.h> +#include <vespa/vespalib/metrics/producer.h> namespace logdemon { @@ -13,12 +14,15 @@ class StateReporter { int _port; std::unique_ptr<vespalib::StateServer> _server; vespalib::SimpleHealthProducer _health; - vespalib::SimpleMetricsProducer _metrics; vespalib::SimpleComponentConfigProducer _components; + std::shared_ptr<vespalib::metrics::MetricsCollector> _metrics; + vespalib::metrics::Producer _producer; public: StateReporter(); + ~StateReporter() {} void setStatePort(int statePort); void gotConf(size_t generation); + vespalib::metrics::MetricsCollector &metrics(); }; } // namespace |