1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "executor_metrics.h"
namespace proton {
void
ExecutorMetrics::update(const vespalib::ExecutorStats &stats)
{
maxPending.set(stats.queueSize.max());
accepted.inc(stats.acceptedTasks);
rejected.inc(stats.rejectedTasks);
wakeupCount.inc(stats.wakeupCount);
util.set(stats.getUtil());
const auto & qSize = stats.queueSize;
queueSize.addValueBatch(qSize.average(), qSize.count(), qSize.min(), qSize.max());
}
ExecutorMetrics::ExecutorMetrics(const std::string &name, metrics::MetricSet *parent)
: metrics::MetricSet(name, {}, "Instance specific thread executor metrics", parent),
maxPending("maxpending", {}, "Maximum number of pending (active + queued) tasks", this),
accepted("accepted", {}, "Number of accepted tasks", this),
rejected("rejected", {}, "Number of rejected tasks", this),
wakeupCount("wakeupCount", {}, "Number of times a worker thread has been woken up", this),
util("utilization", {}, "Ratio of time the worker threads has been active", this),
queueSize("queuesize", {}, "Size of task queue", this)
{
}
ExecutorMetrics::~ExecutorMetrics() = default;
} // namespace proton
|