summaryrefslogtreecommitdiffstats
path: root/storage
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-11-25 11:16:00 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-11-25 11:16:00 +0000
commit46d2e24d63bbfe97f693b4c31518f3cd827cc19b (patch)
tree8aa4a981da587b20c041d57a5d2a381c7829ccc4 /storage
parent7af5735d3337a64e1ca45dad7837c90211f36ced (diff)
GC load metrics take 1
Diffstat (limited to 'storage')
-rw-r--r--storage/src/vespa/storage/persistence/filestorage/filestorhandlerimpl.cpp10
-rw-r--r--storage/src/vespa/storage/persistence/filestorage/filestormetrics.cpp10
-rw-r--r--storage/src/vespa/storage/persistence/filestorage/filestormetrics.h5
-rw-r--r--storage/src/vespa/storage/storageserver/communicationmanager.cpp6
-rw-r--r--storage/src/vespa/storage/storageserver/communicationmanagermetrics.cpp16
-rw-r--r--storage/src/vespa/storage/storageserver/communicationmanagermetrics.h6
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();
};