diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2016-11-28 21:16:26 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2016-12-12 02:55:40 +0100 |
commit | e1a678feb2deddeab5a78be77e16f3cdf0a614a9 (patch) | |
tree | 342fdd803d4597d05e2cef34d667fba2541f9f50 /metrics | |
parent | e7195ab5e2d76848c1d3ac1004f54edf19dfb72d (diff) |
Loosen up the metrics stuff further.
Diffstat (limited to 'metrics')
-rw-r--r-- | metrics/src/vespa/metrics/metricmanager.h | 16 | ||||
-rw-r--r-- | metrics/src/vespa/metrics/metrics.h | 1 | ||||
-rw-r--r-- | metrics/src/vespa/metrics/state_api_adapter.cpp | 1 | ||||
-rw-r--r-- | metrics/src/vespa/metrics/state_api_adapter.h | 3 | ||||
-rw-r--r-- | metrics/src/vespa/metrics/updatehook.h | 27 |
5 files changed, 31 insertions, 17 deletions
diff --git a/metrics/src/vespa/metrics/metricmanager.h b/metrics/src/vespa/metrics/metricmanager.h index ffa73c5eff1..28e03b01aff 100644 --- a/metrics/src/vespa/metrics/metricmanager.h +++ b/metrics/src/vespa/metrics/metricmanager.h @@ -50,6 +50,7 @@ #include <vespa/metrics/metricsnapshot.h> #include <vespa/metrics/namehash.h> #include <vespa/metrics/valuemetric.h> +#include <vespa/metrics/updatehook.h> #include <vespa/vespalib/stllike/hash_set.h> #include <vespa/vespalib/util/sync.h> #include <map> @@ -64,21 +65,6 @@ typedef vespalib::MonitorGuard MetricLockGuard; class MetricManager : private document::Runnable { public: - class UpdateHook { - const char* _name; - time_t _nextCall; - uint32_t _period; - friend class MetricManager; - - public: - typedef vespalib::LinkedPtr<UpdateHook> LP; - using MetricLockGuard = metrics::MetricLockGuard; - - UpdateHook(const char* name) : _name(name), _nextCall(0), _period(0) {} - virtual ~UpdateHook() {} - virtual void updateMetrics(const MetricLockGuard & guard) = 0; - const char* getName() const { return _name; } - }; struct Timer { virtual ~Timer() {} diff --git a/metrics/src/vespa/metrics/metrics.h b/metrics/src/vespa/metrics/metrics.h index 4b21dfb8579..db18bbefdbf 100644 --- a/metrics/src/vespa/metrics/metrics.h +++ b/metrics/src/vespa/metrics/metrics.h @@ -11,7 +11,6 @@ #include <vespa/metrics/loadmetric.h> #include <vespa/metrics/summetric.h> #include <vespa/metrics/metricset.h> -#include <vespa/metrics/metricmanager.h> #include <vespa/metrics/metricsnapshot.h> #include <vespa/metrics/metrictimer.h> diff --git a/metrics/src/vespa/metrics/state_api_adapter.cpp b/metrics/src/vespa/metrics/state_api_adapter.cpp index 606f57a87fe..28e0e277af7 100644 --- a/metrics/src/vespa/metrics/state_api_adapter.cpp +++ b/metrics/src/vespa/metrics/state_api_adapter.cpp @@ -1,5 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "state_api_adapter.h" +#include <vespa/metrics/metricmanager.h> #include "jsonwriter.h" namespace metrics { diff --git a/metrics/src/vespa/metrics/state_api_adapter.h b/metrics/src/vespa/metrics/state_api_adapter.h index dd041a3c37c..df3175dd614 100644 --- a/metrics/src/vespa/metrics/state_api_adapter.h +++ b/metrics/src/vespa/metrics/state_api_adapter.h @@ -3,10 +3,11 @@ #pragma once #include <vespa/vespalib/net/metrics_producer.h> -#include "metricmanager.h" namespace metrics { +class MetricManager; + /** * This is an adapter class that implements the metrics producer * interface defined by the state api implementation in vespalib by diff --git a/metrics/src/vespa/metrics/updatehook.h b/metrics/src/vespa/metrics/updatehook.h new file mode 100644 index 00000000000..2b2f4466b54 --- /dev/null +++ b/metrics/src/vespa/metrics/updatehook.h @@ -0,0 +1,27 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +#pragma once + +#include <vespa/vespalib/util/sync.h> +#include <vespa/vespalib/util/linkedptr.h> + +namespace metrics { + +class MetricManager; + +class UpdateHook { + const char* _name; + time_t _nextCall; + uint32_t _period; + friend class MetricManager; + +public: + typedef vespalib::LinkedPtr<UpdateHook> LP; + using MetricLockGuard = vespalib::MonitorGuard; + + UpdateHook(const char* name) : _name(name), _nextCall(0), _period(0) {} + virtual ~UpdateHook() {} + virtual void updateMetrics(const MetricLockGuard & guard) = 0; + const char* getName() const { return _name; } +}; + +} |