summaryrefslogtreecommitdiffstats
path: root/vespalib
diff options
context:
space:
mode:
authorGeir Storli <geirst@yahooinc.com>2023-09-05 13:50:09 +0000
committerGeir Storli <geirst@yahooinc.com>2023-09-05 13:50:09 +0000
commit79fb9559feb61bbacea840b8cec2f26e318aec6d (patch)
tree455a4e5b4cf0be9ac32e0b25e16508aa2e360d3c /vespalib
parent05df635cab10d2e312a10e0620a0e6558a4de013 (diff)
Add detailed state explorer for field writer SequencedTaskExecutor.
This exposes the raw statistics for each underlying executor.
Diffstat (limited to 'vespalib')
-rw-r--r--vespalib/src/vespa/vespalib/util/sequencedtaskexecutor.cpp10
-rw-r--r--vespalib/src/vespa/vespalib/util/sequencedtaskexecutor.h8
2 files changed, 18 insertions, 0 deletions
diff --git a/vespalib/src/vespa/vespalib/util/sequencedtaskexecutor.cpp b/vespalib/src/vespa/vespalib/util/sequencedtaskexecutor.cpp
index 7538e2acb50..f00ad523602 100644
--- a/vespalib/src/vespa/vespalib/util/sequencedtaskexecutor.cpp
+++ b/vespalib/src/vespa/vespalib/util/sequencedtaskexecutor.cpp
@@ -151,6 +151,16 @@ SequencedTaskExecutor::getStats()
return accumulatedStats;
}
+std::vector<ExecutorStats>
+SequencedTaskExecutor::get_raw_stats()
+{
+ std::vector<ExecutorStats> result;
+ for (auto& executor : _executors) {
+ result.push_back(executor->getStats());
+ }
+ return result;
+}
+
ISequencedTaskExecutor::ExecutorId
SequencedTaskExecutor::getExecutorId(uint64_t componentId) const {
auto id = getExecutorIdPerfect(componentId);
diff --git a/vespalib/src/vespa/vespalib/util/sequencedtaskexecutor.h b/vespalib/src/vespa/vespalib/util/sequencedtaskexecutor.h
index a4b1b82aacf..7e38e4e9512 100644
--- a/vespalib/src/vespa/vespalib/util/sequencedtaskexecutor.h
+++ b/vespalib/src/vespa/vespalib/util/sequencedtaskexecutor.h
@@ -30,6 +30,14 @@ public:
ExecutorStats getStats() override;
void wakeup() override;
+ /**
+ * Returns the ExecutorStats of each underlying executor.
+ *
+ * Calling this function resets the statistics of each underlying executor,
+ * similar to calling getStats().
+ */
+ std::vector<ExecutorStats> get_raw_stats();
+
static std::unique_ptr<ISequencedTaskExecutor>
create(Runnable::init_fun_t func, uint32_t threads);
static std::unique_ptr<ISequencedTaskExecutor>