aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--searchcore/src/tests/proton/documentdb/documentdb_test.cpp4
-rw-r--r--searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.cpp14
-rw-r--r--searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.h11
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/document_db_explorer.cpp4
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/document_meta_store_read_guards.h6
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/documentdb.cpp29
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 &current, 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());