summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-04-24 14:21:37 +0200
committerGitHub <noreply@github.com>2018-04-24 14:21:37 +0200
commit29d894be652512bf2e44ce57ac126a35fb1985e1 (patch)
tree066fdaac4dc9003d306376c5c7da2e8209d36316
parent6a7351dc77ad191540b61555360d20caea94c156 (diff)
parent49709ce3b736e96ccec60a1546bafc14efae945b (diff)
Merge pull request #5690 from vespa-engine/havardpe/propagate-docsum-rate-metric
extract slime docsum count when available
-rw-r--r--searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.cpp b/searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.cpp
index 498c8b914db..7497ae0bf2f 100644
--- a/searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.cpp
+++ b/searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.cpp
@@ -3,12 +3,17 @@
#include <vespa/log/log.h>
LOG_SETUP(".proton.summaryengine.summaryengine");
+#include <vespa/vespalib/data/slime/slime.h>
using namespace search::engine;
using namespace proton;
+using vespalib::Memory;
+using vespalib::slime::Inspector;
namespace {
+Memory DOCSUMS("docsums");
+
class DocsumTask : public vespalib::Executor::Task {
private:
SummaryEngine & _engine;
@@ -28,6 +33,15 @@ public:
}
};
+uint32_t getNumDocs(const DocsumReply &reply) {
+ if (reply._root) {
+ const Inspector &root = reply._root->get();
+ return root[DOCSUMS].entries();
+ } else {
+ return reply.docsums.size();
+ }
+}
+
} // namespace anonymous
namespace proton {
@@ -123,7 +137,7 @@ SummaryEngine::getDocsums(DocsumRequest::UP req)
reply = snapshot->get()->getDocsums(*req); // use the first handler
}
}
- updateDocsumMetrics(req->getTimeUsed().sec(), reply->docsums.size());
+ updateDocsumMetrics(req->getTimeUsed().sec(), getNumDocs(*reply));
}
reply->request = std::move(req);