diff options
Diffstat (limited to 'searchcore')
6 files changed, 54 insertions, 14 deletions
diff --git a/searchcore/src/tests/proton/documentdb/documentdb_test.cpp b/searchcore/src/tests/proton/documentdb/documentdb_test.cpp index 8affe6e9cbf..2c9a2b300eb 100644 --- a/searchcore/src/tests/proton/documentdb/documentdb_test.cpp +++ b/searchcore/src/tests/proton/documentdb/documentdb_test.cpp @@ -221,8 +221,8 @@ TEST_F("requireThatStateIsReported", Fixture) " },\n" " \"documents\": {\n" " \"active\": 0,\n" - " \"indexed\": 0,\n" - " \"stored\": 0,\n" + " \"ready\": 0,\n" + " \"total\": 0,\n" " \"removed\": 0\n" " }\n" "}\n", 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 335ee63668b..f4d2c75205d 100644 --- a/searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.cpp +++ b/searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.cpp @@ -222,6 +222,17 @@ DocumentDBTaggedMetrics::SessionCacheMetrics::SessionCacheMetrics(metrics::Metri DocumentDBTaggedMetrics::SessionCacheMetrics::~SessionCacheMetrics() = default; +DocumentDBTaggedMetrics::DocumentsMetrics::DocumentsMetrics(metrics::MetricSet *parent) + : metrics::MetricSet("documents", "", "Metrics for various document counts in this document db", parent), + active("active", "", "The number of active / searchable documents in this document db", this), + ready("ready", "", "The number of ready documents in this document db", this), + total("total", "", "The total number of documents in this documents db (ready + not-ready)", this), + removed("removed", "", "The number of removed documents in this document db", this) +{ +} + +DocumentDBTaggedMetrics::DocumentsMetrics::~DocumentsMetrics() = default; + DocumentDBTaggedMetrics::DocumentDBTaggedMetrics(const vespalib::string &docTypeName) : MetricSet("documentdb", {{"documenttype", docTypeName}}, "Document DB metrics", nullptr), job(this), @@ -232,7 +243,8 @@ DocumentDBTaggedMetrics::DocumentDBTaggedMetrics(const vespalib::string &docType removed("removed", this), threadingService("threading_service", this), matching(this), - sessionCache(this) + sessionCache(this), + documents(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 516e6f223bc..c5b4ac78a83 100644 --- a/searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.h +++ b/searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.h @@ -168,6 +168,16 @@ struct DocumentDBTaggedMetrics : metrics::MetricSet ~SessionCacheMetrics(); }; + struct DocumentsMetrics : metrics::MetricSet { + metrics::LongValueMetric active; + metrics::LongValueMetric ready; + metrics::LongValueMetric total; + metrics::LongValueMetric removed; + + DocumentsMetrics(metrics::MetricSet *parent); + ~DocumentsMetrics(); + }; + JobMetrics job; AttributeMetrics attribute; IndexMetrics index; @@ -177,6 +187,7 @@ struct DocumentDBTaggedMetrics : metrics::MetricSet ExecutorThreadingServiceMetrics threadingService; MatchingMetrics matching; SessionCacheMetrics sessionCache; + DocumentsMetrics documents; DocumentDBTaggedMetrics(const vespalib::string &docTypeName); ~DocumentDBTaggedMetrics(); diff --git a/searchcore/src/vespa/searchcore/proton/server/document_db_explorer.cpp b/searchcore/src/vespa/searchcore/proton/server/document_db_explorer.cpp index 32d7eb7e0f2..e51e968e550 100644 --- a/searchcore/src/vespa/searchcore/proton/server/document_db_explorer.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/document_db_explorer.cpp @@ -38,8 +38,8 @@ DocumentDBExplorer::get_state(const Inserter &inserter, bool full) const (const_cast<DocumentSubDBCollection &>(_docDb->getDocumentSubDBs())); Cursor &documents = object.setObject("documents"); documents.setLong("active", dmss.numActiveDocs()); - documents.setLong("indexed", dmss.numIndexedDocs()); - documents.setLong("stored", dmss.numStoredDocs()); + documents.setLong("ready", dmss.numReadyDocs()); + documents.setLong("total", dmss.numTotalDocs()); documents.setLong("removed", dmss.numRemovedDocs()); } } diff --git a/searchcore/src/vespa/searchcore/proton/server/document_meta_store_read_guards.h b/searchcore/src/vespa/searchcore/proton/server/document_meta_store_read_guards.h index 8dc39d1415d..e58c99ffbec 100644 --- a/searchcore/src/vespa/searchcore/proton/server/document_meta_store_read_guards.h +++ b/searchcore/src/vespa/searchcore/proton/server/document_meta_store_read_guards.h @@ -24,11 +24,11 @@ struct DocumentMetaStoreReadGuards uint32_t numActiveDocs() const { return readydms ? readydms->get().getNumActiveLids() : 0; } - uint32_t numIndexedDocs() const { + uint32_t numReadyDocs() const { return readydms ? readydms->get().getNumUsedLids() : 0; } - uint32_t numStoredDocs() const { - return numIndexedDocs() + (notreadydms ? notreadydms->get().getNumUsedLids() : 0); + uint32_t numTotalDocs() const { + return numReadyDocs() + (notreadydms ? notreadydms->get().getNumUsedLids() : 0); } uint32_t numRemovedDocs() const { return remdms ? remdms->get().getNumUsedLids() : 0; diff --git a/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp b/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp index 18d1a760dd6..33ed1430644 100644 --- a/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp @@ -1178,6 +1178,28 @@ updateSessionCacheMetrics(DocumentDBMetricsCollection &metrics, proton::matching } void +updateDocumentsMetrics(DocumentDBMetricsCollection &metrics, DocumentSubDBCollection &subDbs) +{ + DocumentMetaStoreReadGuards dms(subDbs); + uint32_t active = dms.numActiveDocs(); + uint32_t ready = dms.numReadyDocs(); + uint32_t total = dms.numTotalDocs(); + uint32_t removed = dms.numRemovedDocs(); + + auto &docsMetrics = metrics.getTaggedMetrics().documents; + docsMetrics.active.set(active); + docsMetrics.ready.set(ready); + docsMetrics.total.set(total); + docsMetrics.removed.set(removed); + + auto &legacyMetrics = metrics.getLegacyMetrics(); + legacyMetrics.numActiveDocs.set(active); + legacyMetrics.numIndexedDocs.set(ready); + legacyMetrics.numStoredDocs.set(total); + legacyMetrics.numRemovedDocs.set(removed); +} + +void updateDocumentStoreCacheHitRate(const CacheStats ¤t, const CacheStats &last, metrics::LongAverageMetric &cacheHitRate) { @@ -1276,6 +1298,7 @@ DocumentDB::updateMetrics(DocumentDBMetricsCollection &metrics) updateAttributeMetrics(metrics, _subDBs); updateMatchingMetrics(metrics, *_subDBs.getReadySubDB()); updateSessionCacheMetrics(metrics, *_sessionManager); + updateDocumentsMetrics(metrics, _subDBs); updateMetrics(metrics.getTaggedMetrics(), threadingServiceStats); } @@ -1289,12 +1312,6 @@ DocumentDB::updateLegacyMetrics(LegacyDocumentDBMetrics &metrics, const Executor metrics.numDocs.set(getNumDocs()); DocumentMetaStoreReadGuards dmss(_subDBs); - - metrics.numActiveDocs.set(dmss.numActiveDocs()); - metrics.numIndexedDocs.set(dmss.numIndexedDocs()); - metrics.numStoredDocs.set(dmss.numStoredDocs()); - metrics.numRemovedDocs.set(dmss.numRemovedDocs()); - updateLidSpaceMetrics(metrics.ready.docMetaStore, dmss.readydms->get()); updateLidSpaceMetrics(metrics.notReady.docMetaStore, dmss.notreadydms->get()); updateLidSpaceMetrics(metrics.removed.docMetaStore, dmss.remdms->get()); |