6#include <userver/components/component_base.hpp>
7#include <userver/components/component_fwd.hpp>
8#include <userver/concurrent/variable.hpp>
9#include <userver/engine/task/task_processor_fwd.hpp>
10#include <userver/utils/periodic_task.hpp>
11#include <userver/utils/statistics/entry.hpp>
12#include <utils/statistics/system_statistics.hpp>
14USERVER_NAMESPACE_BEGIN
41class SystemStatisticsCollector
final :
public ComponentBase {
45 static constexpr std::string_view
kName =
"system-statistics-collector";
47 SystemStatisticsCollector(
const ComponentConfig&,
const ComponentContext&);
48 ~SystemStatisticsCollector()
override;
50 static yaml_config::Schema GetStaticConfigSchema();
53 void ExtendStatistics(utils::statistics::Writer& writer);
58 utils::statistics::impl::SystemStats last_stats{};
59 utils::statistics::impl::SystemStats last_nginx_stats{};
62 const bool with_nginx_;
63 engine::TaskProcessor& fs_task_processor_;
64 utils::statistics::Entry statistics_holder_;
65 concurrent::Variable<Data> data_;
66 utils::PeriodicTask periodic_;
70inline constexpr bool kHasValidate<SystemStatisticsCollector> =
true;