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
33class SystemStatisticsCollector
final :
public ComponentBase {
37 static constexpr std::string_view
kName =
"system-statistics-collector";
39 SystemStatisticsCollector(
const ComponentConfig&,
const ComponentContext&);
40 ~SystemStatisticsCollector()
override;
42 static yaml_config::Schema GetStaticConfigSchema();
45 void ExtendStatistics(utils::statistics::Writer& writer);
50 utils::statistics::impl::SystemStats last_stats{};
51 utils::statistics::impl::SystemStats last_nginx_stats{};
54 const bool with_nginx_;
55 engine::TaskProcessor& fs_task_processor_;
56 utils::statistics::Entry statistics_holder_;
57 concurrent::Variable<Data> data_;
58 utils::PeriodicTask periodic_;
62inline constexpr bool kHasValidate<SystemStatisticsCollector> =
true;