diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-04-03 22:46:03 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-04-04 16:36:18 +0200 |
commit | 37cfa9ab6b103ae733a783cde18c8384e0ace507 (patch) | |
tree | 99b4ec1964a7a392b4aec133c4b20a4a40ab0002 /metrics/src | |
parent | 5a48a81c4134bae524aa66e1e49624f678c8b6ce (diff) |
Override
Diffstat (limited to 'metrics/src')
-rw-r--r-- | metrics/src/vespa/metrics/countmetric.h | 61 | ||||
-rw-r--r-- | metrics/src/vespa/metrics/jsonwriter.h | 16 | ||||
-rw-r--r-- | metrics/src/vespa/metrics/memoryconsumption.h | 2 | ||||
-rw-r--r-- | metrics/src/vespa/metrics/metric.h | 4 | ||||
-rw-r--r-- | metrics/src/vespa/metrics/metricmanager.cpp | 24 | ||||
-rw-r--r-- | metrics/src/vespa/metrics/metricmanager.h | 2 | ||||
-rw-r--r-- | metrics/src/vespa/metrics/metricset.cpp | 6 | ||||
-rw-r--r-- | metrics/src/vespa/metrics/metricset.h | 29 | ||||
-rw-r--r-- | metrics/src/vespa/metrics/printutils.h | 6 | ||||
-rw-r--r-- | metrics/src/vespa/metrics/summetric.h | 30 | ||||
-rw-r--r-- | metrics/src/vespa/metrics/valuemetric.h | 82 | ||||
-rw-r--r-- | metrics/src/vespa/metrics/xmlwriter.h | 14 |
12 files changed, 127 insertions, 149 deletions
diff --git a/metrics/src/vespa/metrics/countmetric.h b/metrics/src/vespa/metrics/countmetric.h index 76eb166ef9a..a72a229b8b8 100644 --- a/metrics/src/vespa/metrics/countmetric.h +++ b/metrics/src/vespa/metrics/countmetric.h @@ -13,13 +13,13 @@ #pragma once -#include <vespa/metrics/metric.h> #include "countmetricvalues.h" +#include <vespa/metrics/metric.h> namespace metrics { struct AbstractCountMetric : public Metric { - virtual bool visit(MetricVisitor& visitor, bool tagAsAutoGenerated = false) const + bool visit(MetricVisitor& visitor, bool tagAsAutoGenerated = false) const override { return visitor.visitCountMetric(*this, tagAsAutoGenerated); } @@ -70,8 +70,9 @@ public: ~CountMetric(); - virtual MetricValueClass::UP getValues() const - { return MetricValueClass::UP(new Values(_values.getValues())); } + MetricValueClass::UP getValues() const override { + return MetricValueClass::UP(new Values(_values.getValues())); + } void logOnlyIfSet() { _values.removeFlag(LOG_IF_UNSET); } void set(T value); @@ -92,40 +93,42 @@ public: CountMetric t(a); t -= b; return t; } - virtual CountMetric * clone( - std::vector<Metric::UP> &, CopyType type, MetricSet* owner, - bool /*includeUnused*/) const - { return new CountMetric<T, SumOnAdd>(*this, type, owner); } - T getValue() const { return _values.getValues()._value; } - void reset() { - _values.reset(); + CountMetric * clone(std::vector<Metric::UP> &, CopyType type, MetricSet* owner, + bool /*includeUnused*/) const override { + return new CountMetric<T, SumOnAdd>(*this, type, owner); } - virtual bool logFromTotalMetrics() const { return true; } - virtual bool logEvent(const String& fullName) const; + T getValue() const { return _values.getValues()._value; } - virtual void print(std::ostream&, bool verbose, - const std::string& indent, uint64_t secondsPassed) const; + void reset() override { _values.reset(); } - // Only one metric in valuemetric, so return it on any id. - virtual int64_t getLongValue(const stringref & id) const - { (void) id; return static_cast<int64_t>(getValue()); } - virtual double getDoubleValue(const stringref & id) const - { (void) id; return static_cast<double>(getValue()); } + bool logFromTotalMetrics() const override { return true; } + bool logEvent(const String& fullName) const override; - virtual bool inUse(const MetricValueClass& v) const - { return static_cast<const Values&>(v).inUse(); } - virtual bool used() const { return _values.getValues().inUse(); } - virtual bool sumOnAdd() const { return SumOnAdd; } + void print(std::ostream&, bool verbose, + const std::string& indent, uint64_t secondsPassed) const override; - virtual void addMemoryUsage(MemoryConsumption&) const; - - virtual void printDebug(std::ostream&, const std::string& indent) const; + // Only one metric in valuemetric, so return it on any id. + int64_t getLongValue(const stringref & id) const override { + (void) id; + return static_cast<int64_t>(getValue()); + } + double getDoubleValue(const stringref & id) const override { + (void) id; + return static_cast<double>(getValue()); + } - virtual void addToPart(Metric&) const; - virtual void addToSnapshot(Metric&, std::vector<Metric::UP> &) const; + bool inUse(const MetricValueClass& v) const override { + return static_cast<const Values&>(v).inUse(); + } + bool used() const override { return _values.getValues().inUse(); } + bool sumOnAdd() const override { return SumOnAdd; } + void addMemoryUsage(MemoryConsumption&) const override; + void printDebug(std::ostream&, const std::string& indent) const override; + void addToPart(Metric&) const override; + void addToSnapshot(Metric&, std::vector<Metric::UP> &) const override; }; typedef CountMetric<uint64_t, true> LongCountMetric; diff --git a/metrics/src/vespa/metrics/jsonwriter.h b/metrics/src/vespa/metrics/jsonwriter.h index 37de3c0c0b1..43f19ffd268 100644 --- a/metrics/src/vespa/metrics/jsonwriter.h +++ b/metrics/src/vespa/metrics/jsonwriter.h @@ -21,15 +21,13 @@ public: JsonWriter(vespalib::JsonStream&); private: - virtual bool visitSnapshot(const MetricSnapshot&); - virtual void doneVisitingSnapshot(const MetricSnapshot&); - virtual bool visitMetricSet(const MetricSet&, bool autoGenerated); - virtual void doneVisitingMetricSet(const MetricSet&); - virtual bool visitCountMetric(const AbstractCountMetric&, - bool autoGenerated); - virtual bool visitValueMetric(const AbstractValueMetric&, - bool autoGenerated); - virtual void doneVisiting(); + bool visitSnapshot(const MetricSnapshot&) override; + void doneVisitingSnapshot(const MetricSnapshot&) override; + bool visitMetricSet(const MetricSet&, bool autoGenerated) override; + void doneVisitingMetricSet(const MetricSet&) override; + bool visitCountMetric(const AbstractCountMetric&, bool autoGenerated) override; + bool visitValueMetric(const AbstractValueMetric&, bool autoGenerated) override; + void doneVisiting() override; void checkIfArrayNeedsToBeStarted(); void writeCommonPrefix(const Metric& m); diff --git a/metrics/src/vespa/metrics/memoryconsumption.h b/metrics/src/vespa/metrics/memoryconsumption.h index e964a7c0ca2..a456e9ae8e0 100644 --- a/metrics/src/vespa/metrics/memoryconsumption.h +++ b/metrics/src/vespa/metrics/memoryconsumption.h @@ -90,7 +90,7 @@ public: void addSnapShotUsage(const std::string& name, uint32_t usage); uint32_t getTotalMemoryUsage() const; - virtual void print(std::ostream& out, bool verbose, const std::string& indent) const; + void print(std::ostream& out, bool verbose, const std::string& indent) const override; static std::string bval(uint32_t bytes); private: diff --git a/metrics/src/vespa/metrics/metric.h b/metrics/src/vespa/metrics/metric.h index c45920cfda4..a494b65127c 100644 --- a/metrics/src/vespa/metrics/metric.h +++ b/metrics/src/vespa/metrics/metric.h @@ -160,8 +160,8 @@ public: /** Implement to make metric able to log event. */ virtual bool logEvent(const String& fullName) const = 0; - virtual void print(std::ostream& out, bool verbose, - const std::string& indent) const { + void print(std::ostream& out, bool verbose, + const std::string& indent) const override { print(out, verbose, indent, 0); } virtual void print(std::ostream&, bool verbose, const std::string& indent, diff --git a/metrics/src/vespa/metrics/metricmanager.cpp b/metrics/src/vespa/metrics/metricmanager.cpp index 13d7443d2bb..572779be855 100644 --- a/metrics/src/vespa/metrics/metricmanager.cpp +++ b/metrics/src/vespa/metrics/metricmanager.cpp @@ -269,8 +269,8 @@ namespace { return false; } - virtual bool visitMetricSet(const MetricSet& metricSet, - bool autoGenerated) + bool visitMetricSet(const MetricSet& metricSet, + bool autoGenerated) override { (void) autoGenerated; result.push_back(Result()); @@ -290,14 +290,14 @@ namespace { } return true; } - virtual void doneVisitingMetricSet(const MetricSet& metricSet) { + void doneVisitingMetricSet(const MetricSet& metricSet) override { if (result.back().metricCount > 0 && result.size() != 1) { LOG(spam, "Adding metricset %s", metricSet.getPath().c_str()); _matchedMetrics.includedMetrics.insert(metricSet.getPath()); } result.pop_back(); } - bool visitMetric(const Metric& metric, bool autoGenerated) { + bool visitMetric(const Metric& metric, bool autoGenerated) override { (void) autoGenerated; if (result.back().nameRemoved || nameRemoved(metric)) return true; bool nAdded = (result.back().nameAdded || nameAdded(metric)); @@ -520,14 +520,14 @@ namespace { MetricVisitor& clientVisitor) : _metricsToMatch(spec), _client(clientVisitor) {} - virtual bool visitMetricSet(const MetricSet& metricSet, - bool autoGenerated) + bool visitMetricSet(const MetricSet& metricSet, + bool autoGenerated) override { if (metricSet.isTopSet()) return true; return (_metricsToMatch.contains(metricSet) && _client.visitMetricSet(metricSet, autoGenerated)); } - virtual void doneVisitingMetricSet(const MetricSet& metricSet) { + void doneVisitingMetricSet(const MetricSet& metricSet) override { if (!metricSet.isTopSet()) { #ifdef VERIFY_ALL_METRICS_VISITED _visitedMetrics.insert(metricSet.getPath()); @@ -535,8 +535,8 @@ namespace { _client.doneVisitingMetricSet(metricSet); } } - virtual bool visitCountMetric(const AbstractCountMetric& metric, - bool autoGenerated) + bool visitCountMetric(const AbstractCountMetric& metric, + bool autoGenerated) override { if (_metricsToMatch.contains(metric)) { #ifdef VERIFY_ALL_METRICS_VISITED @@ -546,8 +546,8 @@ namespace { } return true; } - virtual bool visitValueMetric(const AbstractValueMetric& metric, - bool autoGenerated) + bool visitValueMetric(const AbstractValueMetric& metric, + bool autoGenerated) override { if (_metricsToMatch.contains(metric)) { #ifdef VERIFY_ALL_METRICS_VISITED @@ -746,7 +746,7 @@ namespace { LogMetricVisitor(bool totalVals) : _total(totalVals) {} - bool visitMetric(const Metric& metric, bool autoGenerated) { + bool visitMetric(const Metric& metric, bool autoGenerated) override { (void) autoGenerated; if (metric.logFromTotalMetrics() ^ _total) return true; Metric::String logName = metric.getPath(); diff --git a/metrics/src/vespa/metrics/metricmanager.h b/metrics/src/vespa/metrics/metricmanager.h index 138a4b0c06f..58a8fd4c45a 100644 --- a/metrics/src/vespa/metrics/metricmanager.h +++ b/metrics/src/vespa/metrics/metricmanager.h @@ -92,7 +92,7 @@ public: } void print(std::ostream& out, bool verbose, - const std::string& indent) const; + const std::string& indent) const override; void addMemoryUsage(MemoryConsumption&) const; }; diff --git a/metrics/src/vespa/metrics/metricset.cpp b/metrics/src/vespa/metrics/metricset.cpp index 201b7c296e2..15ee22ba1f2 100644 --- a/metrics/src/vespa/metrics/metricset.cpp +++ b/metrics/src/vespa/metrics/metricset.cpp @@ -99,14 +99,12 @@ namespace { struct MetricSetFinder : public MetricVisitor { std::list<MetricSet*> _metricSets; - virtual bool visitMetricSet(const MetricSet& set, bool autoGenerated) - { + bool visitMetricSet(const MetricSet& set, bool autoGenerated) override { if (autoGenerated) return false; _metricSets.push_back(const_cast<MetricSet*>(&set)); return true; } - virtual bool visitMetric(const Metric&, bool autoGenerated) - { + bool visitMetric(const Metric&, bool autoGenerated) override { (void) autoGenerated; return true; } diff --git a/metrics/src/vespa/metrics/metricset.h b/metrics/src/vespa/metrics/metricset.h index b7c012af277..f96ba5085b0 100644 --- a/metrics/src/vespa/metrics/metricset.h +++ b/metrics/src/vespa/metrics/metricset.h @@ -56,7 +56,7 @@ public: MetricSet* clone(std::vector<Metric::UP> &ownerList, CopyType type, MetricSet* owner, bool includeUnused = false) const override; - void reset(); + void reset() override; bool visit(MetricVisitor&, bool tagAsAutoGenerated = false) const override; @@ -65,9 +65,9 @@ public: void print(std::ostream&, bool verbose, const std::string& indent, uint64_t secondsPassed) const override; // These should never be called on metrics set. - virtual int64_t getLongValue(const stringref & id) const + int64_t getLongValue(const stringref & id) const override { (void) id; assert(false); return 0; } - virtual double getDoubleValue(const stringref & id) const + double getDoubleValue(const stringref & id) const override { (void) id; assert(false); return 0; } const Metric* getMetric(const String& name) const; @@ -76,25 +76,18 @@ public: const_cast<const MetricSet*>(this)->getMetric(name)); } - virtual void addToSnapshot(Metric& m, std::vector<Metric::UP> &o) const - { addTo(m, &o); } + void addToSnapshot(Metric& m, std::vector<Metric::UP> &o) const override { addTo(m, &o); } - const std::vector<Metric*>& getRegisteredMetrics() const - { return _metricOrder; } + const std::vector<Metric*>& getRegisteredMetrics() const { return _metricOrder; } - virtual bool used() const; - - virtual void addMemoryUsage(MemoryConsumption&) const; + bool used() const override; + void addMemoryUsage(MemoryConsumption&) const override; /** Update names using the given name hash, to utilize ref counting. */ - virtual void updateNames(NameHash&) const; - - virtual void printDebug(std::ostream&, const std::string& indent="") const; - - virtual bool isMetricSet() const { return true; } - - virtual void addToPart(Metric& m) const - { addTo(m, 0); } + void updateNames(NameHash&) const override; + void printDebug(std::ostream&, const std::string& indent="") const override; + bool isMetricSet() const override { return true; } + void addToPart(Metric& m) const override { addTo(m, 0); } /** * Returns the key of the dimension this metric is part of (if any). diff --git a/metrics/src/vespa/metrics/printutils.h b/metrics/src/vespa/metrics/printutils.h index 17562e7e064..93f7264c245 100644 --- a/metrics/src/vespa/metrics/printutils.h +++ b/metrics/src/vespa/metrics/printutils.h @@ -49,9 +49,9 @@ struct MetricSource { void checkForPrefixMatch(const Metric& metric); - bool visitMetricSet(const MetricSet& set, bool); - void doneVisitingMetricSet(const MetricSet&) { --_pathIndex; } - bool visitMetric(const Metric& metric, bool); + bool visitMetricSet(const MetricSet& set, bool) override; + void doneVisitingMetricSet(const MetricSet&) override { --_pathIndex; } + bool visitMetric(const Metric& metric, bool) override; }; const Metric* getMetric(const String& name); diff --git a/metrics/src/vespa/metrics/summetric.h b/metrics/src/vespa/metrics/summetric.h index 32444b3a75d..04ae1454a50 100644 --- a/metrics/src/vespa/metrics/summetric.h +++ b/metrics/src/vespa/metrics/summetric.h @@ -59,25 +59,17 @@ public: void addMetricToSum(const AddendMetric&); void removeMetricFromSum(const AddendMetric&); - virtual bool logEvent(const String& fullName) const; - - virtual void print(std::ostream&, bool verbose, const std::string& indent, uint64_t secondsPassed) const; - - virtual int64_t getLongValue(const stringref & id) const; - virtual double getDoubleValue(const stringref & id) const; - - virtual void reset() {} - - virtual bool visit(MetricVisitor& visitor, bool tagAsAutoGenerated = false) const; - - virtual bool used() const; - - virtual void addMemoryUsage(MemoryConsumption&) const; - - virtual void printDebug(std::ostream&, const std::string& indent="") const; - - virtual void addToPart(Metric&) const; - virtual void addToSnapshot(Metric&, std::vector<Metric::UP> &) const; + bool logEvent(const String& fullName) const override; + void print(std::ostream&, bool verbose, const std::string& indent, uint64_t secondsPassed) const override; + int64_t getLongValue(const stringref & id) const override; + double getDoubleValue(const stringref & id) const override; + void reset() override {} + bool visit(MetricVisitor& visitor, bool tagAsAutoGenerated = false) const override; + bool used() const override; + void addMemoryUsage(MemoryConsumption&) const override; + void printDebug(std::ostream&, const std::string& indent="") const override; + void addToPart(Metric&) const override; + void addToSnapshot(Metric&, std::vector<Metric::UP> &) const override; private: friend class MetricManagerTest; diff --git a/metrics/src/vespa/metrics/valuemetric.h b/metrics/src/vespa/metrics/valuemetric.h index 8c02857bcd7..56bed68c6f3 100644 --- a/metrics/src/vespa/metrics/valuemetric.h +++ b/metrics/src/vespa/metrics/valuemetric.h @@ -20,9 +20,7 @@ namespace metrics { struct AbstractValueMetric : public Metric { - virtual bool visit(MetricVisitor& visitor, - bool tagAsAutoGenerated = false) const - { + bool visit(MetricVisitor& visitor, bool tagAsAutoGenerated = false) const override { return visitor.visitValueMetric(*this, tagAsAutoGenerated); } virtual MetricValueClass::UP getValues() const = 0; @@ -47,23 +45,25 @@ protected: }; template<typename AvgVal, typename TotVal, bool SumOnAdd> -class ValueMetric : public AbstractValueMetric -{ +class ValueMetric : public AbstractValueMetric { using String = Metric::String; // Redefine so template finds it easy using Values = ValueMetricValues<AvgVal, TotVal>; MetricValueSet<Values> _values; - enum Flag { SUMMED_AVERAGE = 2, UNSET_ON_ZERO_VALUE = 4, LOG_IF_UNSET = 8 }; + enum Flag { + SUMMED_AVERAGE = 2, UNSET_ON_ZERO_VALUE = 4, LOG_IF_UNSET = 8 + }; + + bool summedAverage() const override { return _values.hasFlag(SUMMED_AVERAGE); } + + bool unsetOnZeroValue() const { return _values.hasFlag(UNSET_ON_ZERO_VALUE); } - virtual bool summedAverage() const - { return _values.hasFlag(SUMMED_AVERAGE); } - bool unsetOnZeroValue() const - { return _values.hasFlag(UNSET_ON_ZERO_VALUE); } bool logIfUnset() const { return _values.hasFlag(LOG_IF_UNSET); } - void add(const Values& values, bool sumOnAdd); - void dec(const Values& values); + void add(const Values &values, bool sumOnAdd); + + void dec(const Values &values); void addValueWithCount(AvgVal avg, TotVal tot, uint32_t count); @@ -76,30 +76,33 @@ class ValueMetric : public AbstractValueMetric } return true; } + bool checkFinite(AvgVal, std::false_type) { return true; } public: - ValueMetric(const String& name, const String& tags, - const String& description, MetricSet* owner = 0); + ValueMetric(const String &name, const String &tags, + const String &description, MetricSet *owner = 0); - ValueMetric(const ValueMetric<AvgVal, TotVal, SumOnAdd>&, - CopyType, MetricSet* owner); + ValueMetric(const ValueMetric<AvgVal, TotVal, SumOnAdd> &, + CopyType, MetricSet *owner); - ValueMetric(const String& name, Tags dimensions, - const String& description, MetricSet* owner = 0); + ValueMetric(const String &name, Tags dimensions, + const String &description, MetricSet *owner = 0); ~ValueMetric(); - virtual MetricValueClass::UP getValues() const - { return MetricValueClass::UP(new Values(_values.getValues())); } + MetricValueClass::UP getValues() const override { + return MetricValueClass::UP(new Values(_values.getValues())); + } void unsetOnZeroValue() { _values.setFlag(UNSET_ON_ZERO_VALUE); } + void logOnlyIfSet() { _values.removeFlag(LOG_IF_UNSET); } - virtual ValueMetric * clone( - std::vector<Metric::UP> &, CopyType type, MetricSet* owner, - bool /*includeUnused*/) const - { return new ValueMetric<AvgVal,TotVal,SumOnAdd>(*this, type, owner); } + ValueMetric *clone(std::vector<Metric::UP> &, CopyType type, MetricSet *owner, + bool /*includeUnused*/) const override { + return new ValueMetric<AvgVal,TotVal,SumOnAdd>(*this, type, owner); + } ValueMetric & operator+=(const ValueMetric &); @@ -125,32 +128,25 @@ public: AvgVal getCount() const { return _values.getValues()._count; } AvgVal getLast() const { return _values.getValues()._last; } - void reset() { _values.reset(); } + void reset() override { _values.reset(); } + bool logEvent(const String& fullName) const override; - virtual bool logEvent(const String& fullName) const; + void print(std::ostream&, bool verbose, + const std::string& indent, uint64_t secondsPassed) const override; - virtual void print(std::ostream&, bool verbose, - const std::string& indent, uint64_t secondsPassed) const; + int64_t getLongValue(const stringref & id) const override; + double getDoubleValue(const stringref & id) const override; - virtual int64_t getLongValue(const stringref & id) const; - virtual double getDoubleValue(const stringref & id) const; - - - virtual bool inUse(const MetricValueClass& v) const { + bool inUse(const MetricValueClass& v) const override { const Values& values(static_cast<const Values&>(v)); return (values._total != 0 || (values._count != 0 && !unsetOnZeroValue())); } - virtual bool used() const { - return inUse(_values.getValues()); - } - - virtual void addMemoryUsage(MemoryConsumption&) const; - - virtual void printDebug(std::ostream&, const std::string& indent) const; - - virtual void addToPart(Metric&) const; - virtual void addToSnapshot(Metric&, std::vector<Metric::UP> &) const; + bool used() const override { return inUse(_values.getValues()); } + void addMemoryUsage(MemoryConsumption&) const override; + void printDebug(std::ostream&, const std::string& indent) const override; + void addToPart(Metric&) const override; + void addToSnapshot(Metric&, std::vector<Metric::UP> &) const override; }; typedef ValueMetric<double, double, true> DoubleValueMetric; diff --git a/metrics/src/vespa/metrics/xmlwriter.h b/metrics/src/vespa/metrics/xmlwriter.h index c55ed82f093..c937d36ccf1 100644 --- a/metrics/src/vespa/metrics/xmlwriter.h +++ b/metrics/src/vespa/metrics/xmlwriter.h @@ -16,14 +16,12 @@ public: XmlWriter(vespalib::xml::XmlOutputStream& xos, uint32_t period, int verbosity); - virtual bool visitSnapshot(const MetricSnapshot&); - virtual void doneVisitingSnapshot(const MetricSnapshot&); - virtual bool visitMetricSet(const MetricSet& set, bool); - virtual void doneVisitingMetricSet(const MetricSet&); - virtual bool visitCountMetric(const AbstractCountMetric&, - bool autoGenerated); - virtual bool visitValueMetric(const AbstractValueMetric&, - bool autoGenerated); + bool visitSnapshot(const MetricSnapshot&) override; + void doneVisitingSnapshot(const MetricSnapshot&) override; + bool visitMetricSet(const MetricSet& set, bool) override; + void doneVisitingMetricSet(const MetricSet&) override; + bool visitCountMetric(const AbstractCountMetric&, bool autoGenerated) override; + bool visitValueMetric(const AbstractValueMetric&, bool autoGenerated) override; private: void printCommonXmlParts(const Metric& metric) const; |