diff options
author | Henning Baldersheim <balder@oath.com> | 2018-04-10 17:50:35 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@oath.com> | 2018-04-10 17:50:35 +0200 |
commit | 6eb097a87f9e5e5d54d5dc6b44682657195b6497 (patch) | |
tree | 995b9372459cfd09646eff8347ea0e9f330fc092 /storage | |
parent | 71b85166e9421cdd6f0d85d55d5f43bad70c0931 (diff) |
Add back the original avgerage queue wait time metric
Diffstat (limited to 'storage')
3 files changed, 18 insertions, 5 deletions
diff --git a/storage/src/vespa/storage/persistence/filestorage/filestorhandlerimpl.cpp b/storage/src/vespa/storage/persistence/filestorage/filestorhandlerimpl.cpp index 4b41ab6efff..a9030007c50 100644 --- a/storage/src/vespa/storage/persistence/filestorage/filestorhandlerimpl.cpp +++ b/storage/src/vespa/storage/persistence/filestorage/filestorhandlerimpl.cpp @@ -291,6 +291,14 @@ FileStorHandlerImpl::updateMetrics(const MetricLockGuard &) vespalib::MonitorGuard lockGuard(_mergeStatesLock); disk.metrics->pendingMerges.addValue(_mergeStates.size()); disk.metrics->queueSize.addValue(disk.getQueueSize()); + + for (auto & entry : disk.metrics->averageQueueWaitingTime.getMetricMap()) { + metrics::LoadType loadType(entry.first, "ignored"); + for (const auto & stripe : disk.metrics->stripes) { + const auto & m = stripe->averageQueueWaitingTime[loadType]; + entry.second->addAvgValueWithCount(m.getAverage(), m.getCount()); + } + } } } diff --git a/storage/src/vespa/storage/persistence/filestorage/filestormetrics.cpp b/storage/src/vespa/storage/persistence/filestorage/filestormetrics.cpp index 9bf8eab8df6..2efae7720e4 100644 --- a/storage/src/vespa/storage/persistence/filestorage/filestormetrics.cpp +++ b/storage/src/vespa/storage/persistence/filestorage/filestormetrics.cpp @@ -160,12 +160,15 @@ FileStorStripeMetrics::FileStorStripeMetrics(const std::string& name, const std: FileStorStripeMetrics::~FileStorStripeMetrics() = default; -FileStorDiskMetrics::FileStorDiskMetrics(const std::string& name, - const std::string& description, - MetricSet* owner) +FileStorDiskMetrics::FileStorDiskMetrics(const std::string& name, const std::string& description, + const metrics::LoadTypeSet& loadTypes, MetricSet* owner) : MetricSet(name, "partofsum disk", description, owner, "disk"), sumThreads("allthreads", "sum", "", this), sumStripes("allstripes", "sum", "", this), + averageQueueWaitingTime(loadTypes, + metrics::DoubleAverageMetric("averagequeuewait", "", + "Average time an operation spends in input queue."), + this), queueSize("queuesize", "", "Size of input message queue.", this), pendingMerges("pendingmerge", "", "Number of buckets currently being merged.", this), waitingForLockHitRate("waitingforlockrate", "", @@ -230,7 +233,7 @@ void FileStorMetrics::initDiskMetrics(uint16_t numDisks, const LoadTypeSet& load std::ostringstream name; name << "disk_" << i; desc << "Disk " << i; - disks[i] = std::make_shared<FileStorDiskMetrics>( name.str(), desc.str(), this); + disks[i] = std::make_shared<FileStorDiskMetrics>( name.str(), desc.str(), loadTypes, this); sum.addMetricToSum(*disks[i]); disks[i]->initDiskMetrics(loadTypes, numStripes, threadsPerDisk); } diff --git a/storage/src/vespa/storage/persistence/filestorage/filestormetrics.h b/storage/src/vespa/storage/persistence/filestorage/filestormetrics.h index c8dbbb81eab..c2fb579183b 100644 --- a/storage/src/vespa/storage/persistence/filestorage/filestormetrics.h +++ b/storage/src/vespa/storage/persistence/filestorage/filestormetrics.h @@ -125,12 +125,14 @@ public: std::vector<FileStorStripeMetrics::SP> stripes; metrics::SumMetric<MetricSet> sumThreads; metrics::SumMetric<MetricSet> sumStripes; + metrics::LoadMetric<metrics::DoubleAverageMetric> averageQueueWaitingTime; metrics::LongAverageMetric queueSize; metrics::LongAverageMetric pendingMerges; metrics::DoubleAverageMetric waitingForLockHitRate; metrics::DoubleAverageMetric lockWaitTime; - FileStorDiskMetrics(const std::string& name, const std::string& description, MetricSet* owner); + FileStorDiskMetrics(const std::string& name, const std::string& description, + const metrics::LoadTypeSet& loadTypes, MetricSet* owner); ~FileStorDiskMetrics(); void initDiskMetrics(const metrics::LoadTypeSet& loadTypes, uint32_t numStripes, uint32_t threadsPerDisk); |