summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@oath.com>2018-03-05 12:13:21 +0000
committerTor Egge <Tor.Egge@oath.com>2018-03-05 12:28:32 +0000
commit4da2c2c885062659e0c86f76061065f9ac4dc216 (patch)
tree2a6b27752704ce8c05fac1af3115f87b72915e91 /searchlib
parent8ce3e8d16fd1c9297d663808fff27cb62f52f924 (diff)
Collect executor stats once per metrics update and pass the info to both
metrics update method for document db legacy metrics and to metrics update method for tagged document db metrics.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/common/sequencedtaskexecutor.cpp13
-rw-r--r--searchlib/src/vespa/searchlib/common/sequencedtaskexecutor.h8
2 files changed, 19 insertions, 2 deletions
diff --git a/searchlib/src/vespa/searchlib/common/sequencedtaskexecutor.cpp b/searchlib/src/vespa/searchlib/common/sequencedtaskexecutor.cpp
index 446c9ec39ec..953449ee496 100644
--- a/searchlib/src/vespa/searchlib/common/sequencedtaskexecutor.cpp
+++ b/searchlib/src/vespa/searchlib/common/sequencedtaskexecutor.cpp
@@ -1,6 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "sequencedtaskexecutor.h"
+#include <vespa/vespalib/util/blockingthreadstackexecutor.h>
#include <vespa/vespalib/stllike/hash_map.hpp>
using vespalib::BlockingThreadStackExecutor;
@@ -67,5 +68,17 @@ SequencedTaskExecutor::sync()
}
}
+SequencedTaskExecutor::Stats
+SequencedTaskExecutor::getStats()
+{
+ Stats accumulatedStats;
+ for (auto &executor : _executors) {
+ Stats stats = executor->getStats();
+ accumulatedStats.maxPendingTasks += stats.maxPendingTasks;
+ accumulatedStats.acceptedTasks += stats.acceptedTasks;
+ accumulatedStats.rejectedTasks += stats.rejectedTasks;
+ }
+ return accumulatedStats;
+}
} // namespace search
diff --git a/searchlib/src/vespa/searchlib/common/sequencedtaskexecutor.h b/searchlib/src/vespa/searchlib/common/sequencedtaskexecutor.h
index 526ba8a3d10..0a04d0625c6 100644
--- a/searchlib/src/vespa/searchlib/common/sequencedtaskexecutor.h
+++ b/searchlib/src/vespa/searchlib/common/sequencedtaskexecutor.h
@@ -3,12 +3,13 @@
#include "isequencedtaskexecutor.h"
#include <vespa/vespalib/stllike/hash_map.h>
-#include <vespa/vespalib/util/blockingthreadstackexecutor.h>
+#include <vector>
namespace vespalib
{
-class ThreadStackExecutorBase;
+class ExecutorStats;
+class BlockingThreadStackExecutor;
}
@@ -21,6 +22,7 @@ namespace search
*/
class SequencedTaskExecutor : public ISequencedTaskExecutor
{
+ using Stats = vespalib::ExecutorStats;
std::vector<std::shared_ptr<vespalib::BlockingThreadStackExecutor>> _executors;
vespalib::hash_map<size_t, size_t> _ids;
public:
@@ -37,6 +39,8 @@ public:
virtual void executeTask(uint32_t executorId, vespalib::Executor::Task::UP task) override;
virtual void sync() override;
+
+ Stats getStats();
};
} // namespace search