diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-11-25 11:16:00 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2020-11-25 11:16:00 +0000 |
commit | 46d2e24d63bbfe97f693b4c31518f3cd827cc19b (patch) | |
tree | 8aa4a981da587b20c041d57a5d2a381c7829ccc4 /storage | |
parent | 7af5735d3337a64e1ca45dad7837c90211f36ced (diff) |
GC load metrics take 1
Diffstat (limited to 'storage')
6 files changed, 20 insertions, 33 deletions
diff --git a/storage/src/vespa/storage/persistence/filestorage/filestorhandlerimpl.cpp b/storage/src/vespa/storage/persistence/filestorage/filestorhandlerimpl.cpp index 980bd09a133..8427f882cfb 100644 --- a/storage/src/vespa/storage/persistence/filestorage/filestorhandlerimpl.cpp +++ b/storage/src/vespa/storage/persistence/filestorage/filestorhandlerimpl.cpp @@ -326,12 +326,10 @@ FileStorHandlerImpl::updateMetrics(const MetricLockGuard &) _metrics->pendingMerges.addValue(_mergeStates.size()); _metrics->queueSize.addValue(getQueueSize()); - for (auto & entry : _metrics->averageQueueWaitingTime.getMetricMap()) { - metrics::LoadType loadType(entry.first, "ignored"); - for (const auto & stripe : _metrics->stripes) { - const auto & m = stripe->averageQueueWaitingTime[loadType]; - entry.second->addTotalValueWithCount(m.getTotal(), m.getCount()); - } + metrics::LoadType loadType(0, "ignored"); + for (const auto & stripe : _metrics->stripes) { + const auto & m = stripe->averageQueueWaitingTime[loadType]; + _metrics->averageQueueWaitingTime.addTotalValueWithCount(m.getTotal(), m.getCount()); } } diff --git a/storage/src/vespa/storage/persistence/filestorage/filestormetrics.cpp b/storage/src/vespa/storage/persistence/filestorage/filestormetrics.cpp index ed42f1932eb..a3265b82410 100644 --- a/storage/src/vespa/storage/persistence/filestorage/filestormetrics.cpp +++ b/storage/src/vespa/storage/persistence/filestorage/filestormetrics.cpp @@ -201,15 +201,11 @@ FileStorStripeMetrics::FileStorStripeMetrics(const std::string& name, const std: FileStorStripeMetrics::~FileStorStripeMetrics() = default; -FileStorDiskMetrics::FileStorDiskMetrics(const std::string& name, const std::string& description, - const metrics::LoadTypeSet& loadTypes, MetricSet* owner) +FileStorDiskMetrics::FileStorDiskMetrics(const std::string& name, const std::string& description, MetricSet* owner) : MetricSet(name, {{"partofsum"}}, description, owner), sumThreads("allthreads", {{"sum"}}, "", this), sumStripes("allstripes", {{"sum"}}, "", this), - averageQueueWaitingTime(loadTypes, - metrics::DoubleAverageMetric("averagequeuewait", {}, - "Average time an operation spends in input queue."), - this), + averageQueueWaitingTime("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", {}, @@ -267,7 +263,7 @@ void FileStorMetrics::initDiskMetrics(const LoadTypeSet& loadTypes, uint32_t num assert( ! disk); // Currently FileStorHandlerImpl expects metrics to exist for // disks that are not in use too. - disk = std::make_shared<FileStorDiskMetrics>( "disk_0", "Disk 0", loadTypes, this); + disk = std::make_shared<FileStorDiskMetrics>( "disk_0", "Disk 0", this); sum.addMetricToSum(*disk); disk->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 86daf022fb2..e893765fbd8 100644 --- a/storage/src/vespa/storage/persistence/filestorage/filestormetrics.h +++ b/storage/src/vespa/storage/persistence/filestorage/filestormetrics.h @@ -144,14 +144,13 @@ public: std::vector<FileStorStripeMetrics::SP> stripes; metrics::SumMetric<MetricSet> sumThreads; metrics::SumMetric<MetricSet> sumStripes; - metrics::LoadMetric<metrics::DoubleAverageMetric> averageQueueWaitingTime; + metrics::DoubleAverageMetric averageQueueWaitingTime; metrics::LongAverageMetric queueSize; metrics::LongAverageMetric pendingMerges; metrics::DoubleAverageMetric waitingForLockHitRate; metrics::DoubleAverageMetric lockWaitTime; - FileStorDiskMetrics(const std::string& name, const std::string& description, - const metrics::LoadTypeSet& loadTypes, MetricSet* owner); + FileStorDiskMetrics(const std::string& name, const std::string& description, MetricSet* owner); ~FileStorDiskMetrics() override; void initDiskMetrics(const metrics::LoadTypeSet& loadTypes, uint32_t numStripes, uint32_t threadsPerDisk); diff --git a/storage/src/vespa/storage/storageserver/communicationmanager.cpp b/storage/src/vespa/storage/storageserver/communicationmanager.cpp index bfbf2b11be3..33f50b7934e 100644 --- a/storage/src/vespa/storage/storageserver/communicationmanager.cpp +++ b/storage/src/vespa/storage/storageserver/communicationmanager.cpp @@ -260,7 +260,7 @@ convert_to_rpc_compression_config(const vespa::config::content::core::StorCommun CommunicationManager::CommunicationManager(StorageComponentRegister& compReg, const config::ConfigUri & configUri) : StorageLink("Communication manager"), _component(compReg, "communicationmanager"), - _metrics(_component.getLoadTypes()->getMetricLoadTypes()), + _metrics(), _shared_rpc_resources(), // Created upon initial configuration _storage_api_rpc_service(), // (ditto) _cc_rpc_service(), // (ditto) @@ -466,11 +466,11 @@ CommunicationManager::process(const std::shared_ptr<api::StorageMessage>& msg) } LOG(spam, "Done processing: %s", msg->toString().c_str()); - _metrics.messageProcessTime[msg->getLoadType()].addValue(startTime.getElapsedTimeAsDouble()); + _metrics.messageProcessTime.addValue(startTime.getElapsedTimeAsDouble()); } catch (std::exception& e) { LOGBP(error, "When running command %s, caught exception %s. Discarding message", msg->toString().c_str(), e.what()); - _metrics.exceptionMessageProcessTime[msg->getLoadType()].addValue(startTime.getElapsedTimeAsDouble()); + _metrics.exceptionMessageProcessTime.addValue(startTime.getElapsedTimeAsDouble()); } } diff --git a/storage/src/vespa/storage/storageserver/communicationmanagermetrics.cpp b/storage/src/vespa/storage/storageserver/communicationmanagermetrics.cpp index 5f2bed07f66..8df19ba6639 100644 --- a/storage/src/vespa/storage/storageserver/communicationmanagermetrics.cpp +++ b/storage/src/vespa/storage/storageserver/communicationmanagermetrics.cpp @@ -1,23 +1,17 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "communicationmanagermetrics.h" -#include <vespa/documentapi/loadtypes/loadtypeset.h> using namespace metrics; namespace storage { -CommunicationManagerMetrics::CommunicationManagerMetrics(const LoadTypeSet& loadTypes, MetricSet* owner) +CommunicationManagerMetrics::CommunicationManagerMetrics(MetricSet* owner) : MetricSet("communication", {}, "Metrics for the communication manager", owner), queueSize("messagequeue", {}, "Size of input message queue.", this), - messageProcessTime(loadTypes, - DoubleAverageMetric("messageprocesstime", {}, - "Time transport thread uses to process a single message"), - this), - exceptionMessageProcessTime(loadTypes, - DoubleAverageMetric("exceptionmessageprocesstime", {}, - "Time transport thread uses to process a single message " - "that fails with an exception thrown into communication manager"), - this), + messageProcessTime("messageprocesstime", {}, "Time transport thread uses to process a single message", this), + exceptionMessageProcessTime("exceptionmessageprocesstime", {}, + "Time transport thread uses to process a single message " + "that fails with an exception thrown into communication manager", this), failedDueToTooLittleMemory("toolittlememory", {}, "Number of messages failed due to too little memory available", this), convertToStorageAPIFailures("convertfailures", {}, "Number of messages that failed to get converted to storage API messages", this), diff --git a/storage/src/vespa/storage/storageserver/communicationmanagermetrics.h b/storage/src/vespa/storage/storageserver/communicationmanagermetrics.h index 2a2b8bdb5c1..cc62b93e6d4 100644 --- a/storage/src/vespa/storage/storageserver/communicationmanagermetrics.h +++ b/storage/src/vespa/storage/storageserver/communicationmanagermetrics.h @@ -14,15 +14,15 @@ namespace storage { struct CommunicationManagerMetrics : public metrics::MetricSet { metrics::LongAverageMetric queueSize; - metrics::LoadMetric<metrics::DoubleAverageMetric> messageProcessTime; - metrics::LoadMetric<metrics::DoubleAverageMetric> exceptionMessageProcessTime; + metrics::DoubleAverageMetric messageProcessTime; + metrics::DoubleAverageMetric exceptionMessageProcessTime; metrics::LongCountMetric failedDueToTooLittleMemory; metrics::LongCountMetric convertToStorageAPIFailures; metrics::LongCountMetric bucketSpaceMappingFailures; metrics::DoubleAverageMetric sendCommandLatency; metrics::DoubleAverageMetric sendReplyLatency; - CommunicationManagerMetrics(const metrics::LoadTypeSet& loadTypes, metrics::MetricSet* owner = 0); + CommunicationManagerMetrics(metrics::MetricSet* owner = nullptr); ~CommunicationManagerMetrics(); }; |