diff options
author | Tor Egge <Tor.Egge@oath.com> | 2018-03-05 12:13:21 +0000 |
---|---|---|
committer | Tor Egge <Tor.Egge@oath.com> | 2018-03-05 12:28:32 +0000 |
commit | 4da2c2c885062659e0c86f76061065f9ac4dc216 (patch) | |
tree | 2a6b27752704ce8c05fac1af3115f87b72915e91 /searchlib | |
parent | 8ce3e8d16fd1c9297d663808fff27cb62f52f924 (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.cpp | 13 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/common/sequencedtaskexecutor.h | 8 |
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 |