diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-03-01 07:51:03 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2023-03-01 17:03:02 +0000 |
commit | a763fc387a1444a425b630498fa9ab051ed8e400 (patch) | |
tree | 3e5ae9a27f2ebcfb86548c47ee95b5ac9e0d60ef /metrics | |
parent | 4ddd73423b5791ec69da4a65eb99fbeec5e62287 (diff) |
Avoid spreading #ifdef around.
Diffstat (limited to 'metrics')
-rw-r--r-- | metrics/src/vespa/metrics/metricmanager.cpp | 56 |
1 files changed, 32 insertions, 24 deletions
diff --git a/metrics/src/vespa/metrics/metricmanager.cpp b/metrics/src/vespa/metrics/metricmanager.cpp index 52226e32e19..3ba3837bf19 100644 --- a/metrics/src/vespa/metrics/metricmanager.cpp +++ b/metrics/src/vespa/metrics/metricmanager.cpp @@ -515,13 +515,27 @@ namespace { struct ConsumerMetricVisitor : public MetricVisitor { const MetricManager::ConsumerSpec& _metricsToMatch; MetricVisitor& _client; -#ifdef VERIFY_ALL_METRICS_VISITED - std::set<Metric::String> _visitedMetrics; -#endif + std::unique_ptr<std::set<Metric::String>> _visitedMetrics; + + ConsumerMetricVisitor(const MetricManager::ConsumerSpec& spec, MetricVisitor& clientVisitor, bool verify) + : _metricsToMatch(spec), + _client(clientVisitor), + _visitedMetrics() + { + if (verify) { + _visitedMetrics = std::make_unique<std::set<Metric::String>>(); + } + } + ~ConsumerMetricVisitor() { + if (_visitedMetrics) { + for (auto metric: _metricsToMatch.includedMetrics) { + if ( ! _visitedMetrics->contains(metric)) { + LOG(info, "Failed to find metric %s to be visited.", metric.c_str()); + } + } + } + } - ConsumerMetricVisitor(const MetricManager::ConsumerSpec& spec, MetricVisitor& clientVisitor) - : _metricsToMatch(spec), _client(clientVisitor) - {} bool visitMetricSet(const MetricSet& metricSet, bool autoGenerated) override { if (metricSet.isTopSet()) return true; @@ -530,30 +544,29 @@ struct ConsumerMetricVisitor : public MetricVisitor { } void doneVisitingMetricSet(const MetricSet& metricSet) override { if (!metricSet.isTopSet()) { -#ifdef VERIFY_ALL_METRICS_VISITED - _visitedMetrics.insert(metricSet.getPath()); -#endif + record(metricSet); _client.doneVisitingMetricSet(metricSet); } } bool visitCountMetric(const AbstractCountMetric& metric, bool autoGenerated) override { if (_metricsToMatch.contains(metric)) { -#ifdef VERIFY_ALL_METRICS_VISITED - _visitedMetrics.insert(metric.getPath()); -#endif + record(metric); return _client.visitCountMetric(metric, autoGenerated); } return true; } bool visitValueMetric(const AbstractValueMetric& metric, bool autoGenerated) override { if (_metricsToMatch.contains(metric)) { -#ifdef VERIFY_ALL_METRICS_VISITED - _visitedMetrics.insert(metric.getPath()); -#endif + record(metric); return _client.visitValueMetric(metric, autoGenerated); } return true; } + void record(const Metric & m) { + if (_visitedMetrics) { + _visitedMetrics->insert(m.getPath()); + } + } }; } @@ -568,17 +581,12 @@ MetricManager::visit(const MetricLockGuard & guard, const MetricSnapshot& snapsh } else { const ConsumerSpec * consumerSpec = getConsumerSpec(guard, consumer); if (consumerSpec) { - ConsumerMetricVisitor consumerVis(*consumerSpec, visitor); - snapshot.getMetrics().visit(consumerVis); #ifdef VERIFY_ALL_METRICS_VISITED - for (auto metric = consumerSpec->includedMetrics) { - if (consumerVis._visitedMetrics.find(metric) - == consumerVis._visitedMetrics.end()) - { - LOG(debug, "Failed to find metric %s to be visited.", metric.c_str()); - } - } + ConsumerMetricVisitor consumerVis(*consumerSpec, visitor, true); +#else + ConsumerMetricVisitor consumerVis(*consumerSpec, visitor, false); #endif + snapshot.getMetrics().visit(consumerVis); } else { LOGBP(debug, "Requested metrics for non-defined consumer '%s'.", consumer.c_str()); } |