diff options
author | Håvard Pettersen <havardpe@oath.com> | 2020-02-04 11:11:35 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@oath.com> | 2020-02-04 12:07:48 +0000 |
commit | b0f12f2e14682e322bd8e43500378fe0ffd4a6ae (patch) | |
tree | 2286079f856c2b6b2f0160f013917bbd173888b9 /storage | |
parent | 83f21ba4f707c9c8d9360e2bf52860ab939aaf9b (diff) |
track the total number of connection objects
Diffstat (limited to 'storage')
5 files changed, 50 insertions, 2 deletions
diff --git a/storage/src/vespa/storage/storageserver/CMakeLists.txt b/storage/src/vespa/storage/storageserver/CMakeLists.txt index 73873e78032..1aafe58af6c 100644 --- a/storage/src/vespa/storage/storageserver/CMakeLists.txt +++ b/storage/src/vespa/storage/storageserver/CMakeLists.txt @@ -7,11 +7,12 @@ vespa_add_library(storage_storageserver changedbucketownershiphandler.cpp communicationmanager.cpp communicationmanagermetrics.cpp - configurable_bucket_resolver.cpp config_logging.cpp + configurable_bucket_resolver.cpp distributornode.cpp distributornodecontext.cpp documentapiconverter.cpp + fnet_metrics_wrapper.cpp fnetlistener.cpp mergethrottler.cpp messagesink.cpp diff --git a/storage/src/vespa/storage/storageserver/fnet_metrics_wrapper.cpp b/storage/src/vespa/storage/storageserver/fnet_metrics_wrapper.cpp new file mode 100644 index 00000000000..476ececd078 --- /dev/null +++ b/storage/src/vespa/storage/storageserver/fnet_metrics_wrapper.cpp @@ -0,0 +1,21 @@ +// Copyright 2020 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +#include "fnet_metrics_wrapper.h" + +namespace storage { + +FnetMetricsWrapper::FnetMetricsWrapper(metrics::MetricSet* owner) + : metrics::MetricSet("fnet", {}, "transport layer metrics", owner), + _num_connections("num-connections", {}, "total number of connection objects", this) +{ +} + +FnetMetricsWrapper::~FnetMetricsWrapper() = default; + +void +FnetMetricsWrapper::update_metrics() +{ + _num_connections.set(FNET_Connection::get_num_connections()); +} + +} diff --git a/storage/src/vespa/storage/storageserver/fnet_metrics_wrapper.h b/storage/src/vespa/storage/storageserver/fnet_metrics_wrapper.h new file mode 100644 index 00000000000..dacb9e9f52c --- /dev/null +++ b/storage/src/vespa/storage/storageserver/fnet_metrics_wrapper.h @@ -0,0 +1,22 @@ +// Copyright 2020 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +#pragma once + +#include <vespa/metrics/metrics.h> +#include <vespa/fnet/connection.h> + +namespace storage { + +// Simple wrapper around low-level fnet network metrics +class FnetMetricsWrapper : public metrics::MetricSet +{ +private: + metrics::LongValueMetric _num_connections; + +public: + explicit FnetMetricsWrapper(metrics::MetricSet* owner); + ~FnetMetricsWrapper() override; + void update_metrics(); +}; + +} diff --git a/storage/src/vespa/storage/storageserver/storagemetricsset.cpp b/storage/src/vespa/storage/storageserver/storagemetricsset.cpp index f3240f0663b..6ed5c1ab650 100644 --- a/storage/src/vespa/storage/storageserver/storagemetricsset.cpp +++ b/storage/src/vespa/storage/storageserver/storagemetricsset.cpp @@ -23,7 +23,8 @@ StorageMetricSet::StorageMetricSet() memoryUse_messages(this), memoryUse_visiting("memoryusage_visiting", {{"memory"}}, "Message use from visiting", this), - tls_metrics(this) + tls_metrics(this), + fnet_metrics(this) {} StorageMetricSet::~StorageMetricSet() = default; @@ -35,6 +36,7 @@ void StorageMetricSet::updateMetrics() { // be erased from history. This will no longer be a problem once we move to a // metrics system built around absolute (rather than derived) values. tls_metrics.update_metrics_with_snapshot_delta(); + fnet_metrics.update_metrics(); } } // storage diff --git a/storage/src/vespa/storage/storageserver/storagemetricsset.h b/storage/src/vespa/storage/storageserver/storagemetricsset.h index 49795c63324..a315e974c01 100644 --- a/storage/src/vespa/storage/storageserver/storagemetricsset.h +++ b/storage/src/vespa/storage/storageserver/storagemetricsset.h @@ -3,6 +3,7 @@ #pragma once #include "tls_statistics_metrics_wrapper.h" +#include "fnet_metrics_wrapper.h" #include <vespa/metrics/metrics.h> namespace storage { @@ -27,6 +28,7 @@ struct StorageMetricSet : public metrics::MetricSet metrics::LongValueMetric memoryUse_visiting; TlsStatisticsMetricsWrapper tls_metrics; + FnetMetricsWrapper fnet_metrics; StorageMetricSet(); ~StorageMetricSet() override; |