diff options
Diffstat (limited to 'metrics/src/tests/stresstest.cpp')
-rw-r--r-- | metrics/src/tests/stresstest.cpp | 53 |
1 files changed, 17 insertions, 36 deletions
diff --git a/metrics/src/tests/stresstest.cpp b/metrics/src/tests/stresstest.cpp index f3e709b4b04..df6641c9798 100644 --- a/metrics/src/tests/stresstest.cpp +++ b/metrics/src/tests/stresstest.cpp @@ -1,6 +1,5 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -#include <vespa/metrics/loadmetric.hpp> #include <vespa/metrics/metricmanager.h> #include <vespa/metrics/metrics.h> #include <vespa/metrics/summetric.hpp> @@ -15,42 +14,38 @@ namespace metrics { namespace { struct InnerMetricSet : public MetricSet { - const LoadTypeSet& _loadTypes; LongCountMetric _count; LongAverageMetric _value1; LongAverageMetric _value2; SumMetric<LongAverageMetric> _valueSum; - LoadMetric<LongAverageMetric> _load; - InnerMetricSet(const char* name, const LoadTypeSet& lt, MetricSet* owner = 0); + InnerMetricSet(const char* name, MetricSet* owner = 0); ~InnerMetricSet(); MetricSet* clone(std::vector<Metric::UP> &ownerList, CopyType copyType, MetricSet* owner, bool includeUnused) const override; }; -InnerMetricSet::InnerMetricSet(const char* name, const LoadTypeSet& lt, MetricSet* owner) +InnerMetricSet::InnerMetricSet(const char* name, MetricSet* owner) : MetricSet(name, {}, "", owner), - _loadTypes(lt), _count("count", {}, "", this), _value1("value1", {}, "", this), _value2("value2", {}, "", this), - _valueSum("valuesum", {}, "", this), - _load(lt, LongAverageMetric("load", {}, ""), this) + _valueSum("valuesum", {}, "", this) { _valueSum.addMetricToSum(_value1); _valueSum.addMetricToSum(_value2); } InnerMetricSet::~InnerMetricSet() = default; - MetricSet* - InnerMetricSet::clone(std::vector<Metric::UP> &ownerList, CopyType copyType, - MetricSet* owner, bool includeUnused) const +MetricSet* +InnerMetricSet::clone(std::vector<Metric::UP> &ownerList, CopyType copyType, + MetricSet* owner, bool includeUnused) const { if (copyType != CLONE) { return MetricSet::clone(ownerList, copyType, owner, includeUnused); } - InnerMetricSet * myset = new InnerMetricSet(getName().c_str(), _loadTypes, owner); + InnerMetricSet * myset = new InnerMetricSet(getName().c_str(), owner); myset->assignValues(*this); return myset; } @@ -60,37 +55,31 @@ struct OuterMetricSet : public MetricSet { InnerMetricSet _inner2; SumMetric<InnerMetricSet> _innerSum; InnerMetricSet _tmp; - LoadMetric<InnerMetricSet> _load; - OuterMetricSet(const LoadTypeSet& lt, MetricSet* owner = 0); + OuterMetricSet(MetricSet* owner = 0); ~OuterMetricSet(); }; -OuterMetricSet::OuterMetricSet(const LoadTypeSet& lt, MetricSet* owner) +OuterMetricSet::OuterMetricSet(MetricSet* owner) : MetricSet("outer", {}, "", owner), - _inner1("inner1", lt, this), - _inner2("inner2", lt, this), + _inner1("inner1", this), + _inner2("inner2", this), _innerSum("innersum", {}, "", this), - _tmp("innertmp", lt, 0), - _load(lt, _tmp, this) + _tmp("innertmp", 0) { _innerSum.addMetricToSum(_inner1); _innerSum.addMetricToSum(_inner2); } -OuterMetricSet::~OuterMetricSet() { } +OuterMetricSet::~OuterMetricSet() = default; struct Hammer : public document::Runnable { using UP = std::unique_ptr<Hammer>; OuterMetricSet& _metrics; - const LoadTypeSet& _loadTypes; - LoadType _nonexistingLoadType; - Hammer(OuterMetricSet& metrics, const LoadTypeSet& lt, - FastOS_ThreadPool& threadPool) - : _metrics(metrics), _loadTypes(lt), - _nonexistingLoadType(123, "nonexisting") + Hammer(OuterMetricSet& metrics,FastOS_ThreadPool& threadPool) + : _metrics(metrics) { start(threadPool); } @@ -106,8 +95,6 @@ struct Hammer : public document::Runnable { ++i; setMetrics(i, _metrics._inner1); setMetrics(i + 3, _metrics._inner2); - const LoadType& loadType(_loadTypes[i % _loadTypes.size()]); - setMetrics(i + 5, _metrics._load[loadType]); } } @@ -115,7 +102,6 @@ struct Hammer : public document::Runnable { set._count.inc(val); set._value1.addValue(val); set._value2.addValue(val + 10); - set._load[_loadTypes[val % _loadTypes.size()]].addValue(val); } }; @@ -124,18 +110,13 @@ struct Hammer : public document::Runnable { TEST(StressTest, test_stress) { - LoadTypeSet loadTypes; - loadTypes.push_back(LoadType(0, "default")); - loadTypes.push_back(LoadType(2, "foo")); - loadTypes.push_back(LoadType(1, "bar")); - - OuterMetricSet metrics(loadTypes); + OuterMetricSet metrics; LOG(info, "Starting load givers"); FastOS_ThreadPool threadPool(256 * 1024); std::vector<Hammer::UP> hammers; for (uint32_t i=0; i<10; ++i) { - hammers.push_back(std::make_unique<Hammer>(metrics, loadTypes, threadPool)); + hammers.push_back(std::make_unique<Hammer>(metrics, threadPool)); } LOG(info, "Waiting to let loadgivers hammer a while"); std::this_thread::sleep_for(5s); |