diff options
author | Tor Egge <Tor.Egge@broadpark.no> | 2016-12-15 14:36:58 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-15 14:36:58 +0100 |
commit | 72cf874511ed1d18295dcecfc59d151dd35db12c (patch) | |
tree | f824262986588a328e44f1327596d9af7f072dd3 /searchcore | |
parent | d9b45214d28207564329991afe70afc358fe6d12 (diff) | |
parent | fe66f1be411e51a3f767d3db30eebfde458aeb94 (diff) |
Merge pull request #1335 from yahoo/geirst/document-store-memory-usage-metrics
Geirst/document store memory usage metrics
Diffstat (limited to 'searchcore')
6 files changed, 26 insertions, 6 deletions
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()); } } 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<DataStoreFileChunkStats> chunks; 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 <vespa/metrics/metricset.h> #include <vespa/metrics/valuemetric.h> @@ -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 <typename MetricSetType> 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<search::DataStoreFileChunkStats> getFileChunkStats() const override { std::vector<search::DataStoreFileChunkStats> result; |