summaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorGeir Storli <geirst@verizonmedia.com>2021-08-18 13:32:39 +0000
committerGeir Storli <geirst@verizonmedia.com>2021-08-20 11:03:58 +0000
commit30e1e7d2cf1c6af481aee791c32580c6cf662aa0 (patch)
treea7bf7aa0e79af06f16eb4ee3e877e5dbe9e33308 /searchcore
parent2153b7cc3353992550596141314e5edd3a6c0681 (diff)
Add metric for the max address space used among components in all attribute vectors in a document db.
Diffstat (limited to 'searchcore')
-rw-r--r--searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.cpp4
-rw-r--r--searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.h1
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/documentdb_metrics_updater.cpp8
3 files changed, 9 insertions, 4 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.cpp b/searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.cpp
index 713a03810b9..7bd07dba505 100644
--- a/searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.cpp
+++ b/searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.cpp
@@ -91,11 +91,13 @@ DocumentDBTaggedMetrics::AttributeMetrics::AttributeMetrics(MetricSet *parent)
DocumentDBTaggedMetrics::AttributeMetrics::~AttributeMetrics() = default;
DocumentDBTaggedMetrics::AttributeMetrics::ResourceUsageMetrics::ResourceUsageMetrics(MetricSet *parent)
- : MetricSet("resource_usage", {}, "Usage metrics for various attribute vector resources", parent),
+ : MetricSet("resource_usage", {}, "Metrics for various attribute vector resources usage", parent),
enumStore("enum_store", {}, "The highest relative amount of enum store address space used among "
"all enumerated attribute vectors in this document db (value in the range [0, 1])", this),
multiValue("multi_value", {}, "The highest relative amount of multi-value address space used among "
"all multi-value attribute vectors in this document db (value in the range [0, 1])", this),
+ address_space("address_space", {}, "The max relative address space used among "
+ "components in all attribute vectors in this document db (value in the range [0, 1])", this),
feedingBlocked("feeding_blocked", {}, "Whether feeding is blocked due to attribute resource limits being reached (value is either 0 or 1)", this)
{
}
diff --git a/searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.h b/searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.h
index 7f2e095a39b..8d225115c37 100644
--- a/searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.h
+++ b/searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.h
@@ -88,6 +88,7 @@ struct DocumentDBTaggedMetrics : metrics::MetricSet
{
metrics::DoubleValueMetric enumStore;
metrics::DoubleValueMetric multiValue;
+ metrics::DoubleValueMetric address_space;
metrics::LongValueMetric feedingBlocked;
ResourceUsageMetrics(metrics::MetricSet *parent);
diff --git a/searchcore/src/vespa/searchcore/proton/server/documentdb_metrics_updater.cpp b/searchcore/src/vespa/searchcore/proton/server/documentdb_metrics_updater.cpp
index 8b923c7a372..66ecf955736 100644
--- a/searchcore/src/vespa/searchcore/proton/server/documentdb_metrics_updater.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/documentdb_metrics_updater.cpp
@@ -302,12 +302,14 @@ DocumentDBMetricsUpdater::updateMetrics(const metrics::MetricLockGuard & guard,
void
DocumentDBMetricsUpdater::updateAttributeResourceUsageMetrics(DocumentDBTaggedMetrics::AttributeMetrics &metrics)
{
- AttributeUsageStats attributeUsageStats = _writeFilter.getAttributeUsageStats();
+ AttributeUsageStats stats = _writeFilter.getAttributeUsageStats();
bool feedBlocked = !_writeFilter.acceptWriteOperation();
- double enumStoreUsed = attributeUsageStats.enumStoreUsage().getUsage().usage();
- double multiValueUsed = attributeUsageStats.multiValueUsage().getUsage().usage();
+ double enumStoreUsed = stats.enumStoreUsage().getUsage().usage();
+ double multiValueUsed = stats.multiValueUsage().getUsage().usage();
+ double address_space_used = stats.max_usage().getUsage().usage();
metrics.resourceUsage.enumStore.set(enumStoreUsed);
metrics.resourceUsage.multiValue.set(multiValueUsed);
+ metrics.resourceUsage.address_space.set(address_space_used);
metrics.resourceUsage.feedingBlocked.set(feedBlocked ? 1 : 0);
}