userver: userver/engine/task_processors_load_monitor.hpp Source File
Loading...
Searching...
No Matches
task_processors_load_monitor.hpp
Go to the documentation of this file.
1#pragma once
2
3/// @file userver/engine/task_processors_load_monitor.hpp
4/// @brief @copybrief engine::TaskProcessorsLoadMonitor
5
6#include <memory>
7
8#include <userver/components/component_base.hpp>
9
10USERVER_NAMESPACE_BEGIN
11
12namespace engine {
13
14/// @ingroup userver_components
15///
16/// @brief Component to monitor CPU usage for every TaskProcessor present in
17/// the service, and dump per-thread stats into metrics.
18///
19/// ## Static options of engine::TaskProcessorsLoadMonitor :
20/// @include{doc} scripts/docs/en/components_schema/core/src/engine/task_processors_load_monitor.md
21///
22/// Options inherited from @ref components::ComponentBase :
23/// @include{doc} scripts/docs/en/components_schema/core/src/components/impl/component_base.md
24class TaskProcessorsLoadMonitor final : public components::ComponentBase {
25public:
26 /// @ingroup userver_component_names
27 /// @brief The default name of @ref engine::TaskProcessorsLoadMonitor
28 static constexpr std::string_view kName{"task-processors-load-monitor"};
29
30 TaskProcessorsLoadMonitor(const components::ComponentConfig& config, const components::ComponentContext& context);
31
32 ~TaskProcessorsLoadMonitor() override;
33
34 static yaml_config::Schema GetStaticConfigSchema();
35
36private:
37 class Impl;
38 std::unique_ptr<Impl> impl_;
39};
40
41} // namespace engine
42
43template <>
44inline constexpr bool components::kHasValidate<engine::TaskProcessorsLoadMonitor> = true;
45
46template <>
47inline constexpr auto components::kConfigFileMode<engine::TaskProcessorsLoadMonitor> = ConfigFileMode::kNotRequired;
48
49USERVER_NAMESPACE_END