aboutsummaryrefslogtreecommitdiffstats
path: root/storage
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@oath.com>2018-04-10 17:50:35 +0200
committerHenning Baldersheim <balder@oath.com>2018-04-10 17:50:35 +0200
commit6eb097a87f9e5e5d54d5dc6b44682657195b6497 (patch)
tree995b9372459cfd09646eff8347ea0e9f330fc092 /storage
parent71b85166e9421cdd6f0d85d55d5f43bad70c0931 (diff)
Add back the original avgerage queue wait time metric
Diffstat (limited to 'storage')
-rw-r--r--storage/src/vespa/storage/persistence/filestorage/filestorhandlerimpl.cpp8
-rw-r--r--storage/src/vespa/storage/persistence/filestorage/filestormetrics.cpp11
-rw-r--r--storage/src/vespa/storage/persistence/filestorage/filestormetrics.h4
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);