From 25e2a7cf15a760f517182f5fea669168b804e838 Mon Sep 17 00:00:00 2001 From: Geir Storli Date: Thu, 15 Dec 2016 12:59:17 +0100 Subject: Expose document store memory usage metrics. --- .../src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.cpp | 3 ++- .../src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.h | 2 ++ searchcore/src/vespa/searchcore/proton/server/documentdb.cpp | 1 + searchcore/src/vespa/searchcore/proton/test/dummy_document_store.h | 1 + 4 files changed, 6 insertions(+), 1 deletion(-) (limited to 'searchcore') 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 4d84dea704b..68580d90974 100644 --- a/searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.cpp +++ b/searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.cpp @@ -55,7 +55,8 @@ DocumentDBTaggedMetrics::SubDBMetrics::DocumentStoreMetrics::DocumentStoreMetric : MetricSet("document_store", "", "document store metrics for this document sub DB", parent), diskUsage("disk_usage", "", "Disk space usage in bytes", this), diskBloat("disk_bloat", "", "Disk space bloat in bytes", this), - maxBucketSpread("max_bucket_spread", "", "Max bucket spread in underlying files (sum(unique buckets in each chunk)/unique buckets in file)", this) + maxBucketSpread("max_bucket_spread", "", "Max bucket spread in underlying files (sum(unique buckets in each chunk)/unique buckets in file)", this), + memoryUsage(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 68b5be03998..39f4733f66c 100644 --- a/searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.h +++ b/searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.h @@ -2,6 +2,7 @@ #pragma once #include "attribute_metrics.h" +#include "memory_usage_metrics.h" #include #include @@ -47,6 +48,7 @@ struct DocumentDBTaggedMetrics : metrics::MetricSet metrics::LongValueMetric diskUsage; metrics::LongValueMetric diskBloat; metrics::DoubleValueMetric maxBucketSpread; + MemoryUsageMetrics memoryUsage; DocumentStoreMetrics(metrics::MetricSet *parent); }; diff --git a/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp b/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp index 07745e62976..b21d6c1eba8 100644 --- a/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp @@ -1433,6 +1433,7 @@ updateDocumentStoreMetrics(DocumentDBTaggedMetrics::SubDBMetrics:: metrics.diskUsage.set(storageStats.diskUsage()); metrics.diskBloat.set(storageStats.diskBloat()); metrics.maxBucketSpread.set(storageStats.maxBucketSpread()); + metrics.memoryUsage.update(backingStore.getMemoryUsage()); } template diff --git a/searchcore/src/vespa/searchcore/proton/test/dummy_document_store.h b/searchcore/src/vespa/searchcore/proton/test/dummy_document_store.h index 6b165649f1a..2b43546be86 100644 --- a/searchcore/src/vespa/searchcore/proton/test/dummy_document_store.h +++ b/searchcore/src/vespa/searchcore/proton/test/dummy_document_store.h @@ -54,6 +54,7 @@ struct DummyDocumentStore : public search::IDocumentStore virtual search::DataStoreStorageStats getStorageStats() const override { return search::DataStoreStorageStats(0, 0, 0.0, 0, 0); } + virtual search::MemoryUsage getMemoryUsage() const override { return search::MemoryUsage(); } virtual std::vector getFileChunkStats() const override { std::vector result; -- cgit v1.2.3 From 2d6a7229b8187a6586043e02ba7ccd10ff0a48d9 Mon Sep 17 00:00:00 2001 From: Geir Storli Date: Thu, 15 Dec 2016 13:24:52 +0100 Subject: Expose document store memory usage in explorer. --- .../proton/docsummary/document_store_explorer.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'searchcore') diff --git a/searchcore/src/vespa/searchcore/proton/docsummary/document_store_explorer.cpp b/searchcore/src/vespa/searchcore/proton/docsummary/document_store_explorer.cpp index ddc885a2b0b..1efda376848 100644 --- a/searchcore/src/vespa/searchcore/proton/docsummary/document_store_explorer.cpp +++ b/searchcore/src/vespa/searchcore/proton/docsummary/document_store_explorer.cpp @@ -17,6 +17,20 @@ DocumentStoreExplorer::DocumentStoreExplorer(ISummaryManager::SP mgr) { } +namespace { + +void +setMemoryUsage(Cursor &object, const search::MemoryUsage &usage) +{ + Cursor &memory = object.setObject("memoryUsage"); + memory.setLong("allocatedBytes", usage.allocatedBytes()); + memory.setLong("usedBytes", usage.usedBytes()); + memory.setLong("deadBytes", usage.deadBytes()); + memory.setLong("onHoldBytes", usage.allocatedBytesOnHold()); +} + +} + void DocumentStoreExplorer::get_state(const Inserter &inserter, bool full) const { @@ -28,6 +42,7 @@ DocumentStoreExplorer::get_state(const Inserter &inserter, bool full) const object.setDouble("maxBucketSpread", storageStats.maxBucketSpread()); object.setLong("lastFlushedSerialNum", storageStats.lastFlushedSerialNum()); object.setLong("lastSerialNum", storageStats.lastSerialNum()); + setMemoryUsage(object, store.getMemoryUsage()); if (full) { const vespalib::string &baseDir = store.getBaseDir(); std::vector chunks; -- cgit v1.2.3 From b564f79643996dcb60a8a143ac0094a3a54ac0df Mon Sep 17 00:00:00 2001 From: Geir Storli Date: Thu, 15 Dec 2016 13:26:26 +0100 Subject: Align naming of memory usage with explorer for document store. --- .../searchcore/proton/attribute/attribute_vector_explorer.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'searchcore') diff --git a/searchcore/src/vespa/searchcore/proton/attribute/attribute_vector_explorer.cpp b/searchcore/src/vespa/searchcore/proton/attribute/attribute_vector_explorer.cpp index 768523c7f64..6cc94abdd10 100644 --- a/searchcore/src/vespa/searchcore/proton/attribute/attribute_vector_explorer.cpp +++ b/searchcore/src/vespa/searchcore/proton/attribute/attribute_vector_explorer.cpp @@ -34,11 +34,11 @@ convertStatusToSlime(const Status &status, Cursor &object) object.setLong("bitVectors", status.getBitVectors()); { Cursor &memory = object.setObject("memoryUsage"); - memory.setLong("allocated", status.getAllocated()); - memory.setLong("used", status.getUsed()); - memory.setLong("dead", status.getDead()); - memory.setLong("onHold", status.getOnHold()); - memory.setLong("onHoldMax", status.getOnHoldMax()); + memory.setLong("allocatedBytes", status.getAllocated()); + memory.setLong("usedBytes", status.getUsed()); + memory.setLong("deadBytes", status.getDead()); + memory.setLong("onHoldBytes", status.getOnHold()); + memory.setLong("onHoldBytesMax", status.getOnHoldMax()); } } -- cgit v1.2.3