Contains functions and types to start a userver based service/tool.
Classes | |
class | AuthCheckerSettings |
Component that loads auth configuration settings from a components::Secdist component if the latter was registered in components::ComponentList. More... | |
class | CachingComponentBase |
Base class for caching components. More... | |
class | ClickHouse |
ClickHouse client component. More... | |
class | ComponentConfig |
class | ComponentContext |
Class to retrieve other components. More... | |
class | ComponentList |
A list to keep a unique list of components to start with components::Run(), utils::DaemonMain() or components::RunOnce(). More... | |
class | ComponentsLoadCancelledException |
Exception that is thrown from components::ComponentContext::FindComponent() if a component load failed. More... | |
class | DefaultSecdistProvider |
Component that stores security related data (keys, passwords, ...). More... | |
class | DumpConfigurator |
Helper component that manages common configuration for userver dumps. More... | |
class | DynamicConfig |
Component that stores the dynamic config. More... | |
class | DynamicConfigClient |
Component that starts a clients::dynamic_config::Client client. More... | |
class | DynamicConfigClientUpdater |
Component that does a periodic update of runtime configs. More... | |
class | DynamicConfigUpdatesSinkBase |
Base class for components acting as dynamic config updates sinks. More... | |
class | FsCache |
Component for storing files in memory. More... | |
class | HeadersPropagatorComponent |
Headers Propagator Component can scrape configured headers and then enrich HttpClient request with them. More... | |
class | HttpClient |
Component that manages clients::http::Client. More... | |
struct | InMemoryConfig |
class | LoggableComponentBase |
Base class for all application components, it depends on components::Logger and components::Tracer. More... | |
class | Logging |
Logging component More... | |
class | LoggingConfigurator |
Helper component to configure logging. More... | |
class | ManagerControllerComponent |
Component that prepares the engine internals and starts all the other components. More... | |
class | Mongo |
MongoDB client component. More... | |
class | MongoCache |
Base class for all caches polling mongo collection More... | |
class | MultiMongo |
Dynamically configurable MongoDB client component. More... | |
class | PostgreCache |
Caching component for PostgreSQL. See Caching Component for PostgreSQL. More... | |
class | Postgres |
PosgreSQL client component. More... | |
class | ProcessStarter |
Component for getting the engine::subprocess::ProcessStarter. More... | |
class | RabbitMQ |
RabbitMQ (AMQP 0.9.1) client component. More... | |
class | Redis |
Redis client component. More... | |
class | Secdist |
Component that stores security related data (keys, passwords, ...). More... | |
class | Server |
Component that listens for incoming requests, manages incoming connections and passes the requests to the appropriate handler. More... | |
class | SingleThreadedTaskProcessors |
Component that starts multiple single threaded task processors. More... | |
class | State |
class | StatisticsStorage |
Component that keeps a utils::statistics::Storage storage for metrics. More... | |
class | SystemStatisticsCollector |
Component for system resource usage statistics collection. More... | |
class | TcpAcceptorBase |
Component for accepting incoming TCP connections. More... | |
class | TestsuiteSupport |
Testsuite support component. More... | |
class | Tracer |
Component that initializes the request tracing facilities. More... | |
Typedefs | |
using | ComponentConfigMap |
Enumerations | |
enum class | ComponentHealth { kOk , kFallback , kFatal } |
State of the component. More... | |
enum class | ConfigFileMode { kRequired , kNotRequired } |
enum class | ValidationMode { kOnlyTurnedOn , kAll } |
Functions | |
ComponentList | CommonComponentList () |
Returns the most common list of components with runtime config updates and HTTP client. | |
ComponentList | CommonServerComponentList () |
Returns the most common list of components to start a fully functional server. | |
ComponentConfig | Parse (const yaml_config::YamlConfig &value, formats::parse::To< ComponentConfig >) |
std::string | GetCurrentComponentName (const ComponentConfig &config) |
Equivalent to config.Name() but works with forward declaration of the components::ComponentConfig. | |
ComponentList | MinimalComponentList () |
Returns a list of components to do basic logging, component initialization and configuration. | |
ComponentList | MinimalServerComponentList () |
Returns a list of components to start a basic HTTP server. | |
void | Run (const std::string &config_path, const std::optional< std::string > &config_vars_path, const std::optional< std::string > &config_vars_override_path, const ComponentList &component_list) |
void | Run (const InMemoryConfig &config, const ComponentList &component_list) |
void | RunOnce (const std::string &config_path, const std::optional< std::string > &config_vars_path, const std::optional< std::string > &config_vars_override_path, const ComponentList &component_list) |
void | RunOnce (const InMemoryConfig &config, const ComponentList &component_list) |
ValidationMode | Parse (const yaml_config::YamlConfig &value, formats::parse::To< ValidationMode >) |
Variables | |
template<> | |
constexpr bool | kHasValidate< HttpClient > = true |
template<> | |
constexpr bool | kHasValidate< DumpConfigurator > = true |
template<> | |
constexpr bool | kHasValidate< FsCache > = true |
template<typename Component > | |
constexpr bool | kHasValidate = false |
template<typename Component > | |
constexpr auto | kConfigFileMode = ConfigFileMode::kRequired |
template<> | |
constexpr bool | kHasValidate< LoggingConfigurator > = true |
}@ | |
template<> | |
constexpr auto | kConfigFileMode< ManagerControllerComponent > |
template<> | |
constexpr bool | kHasValidate< ProcessStarter > = true |
template<> | |
constexpr bool | kHasValidate< SingleThreadedTaskProcessors > = true |
template<> | |
constexpr bool | kHasValidate< StatisticsStorage > = true |
template<> | |
constexpr auto | kConfigFileMode< StatisticsStorage > |
template<> | |
constexpr bool | kHasValidate< DynamicConfigClient > = true |
template<> | |
constexpr bool | kHasValidate< DynamicConfig > = true |
template<> | |
constexpr auto | kConfigFileMode< DynamicConfig > |
template<> | |
constexpr bool | kHasValidate< DynamicConfigClientUpdater > = true |
template<> | |
constexpr bool | kHasValidate< Logging > = true |
template<> | |
constexpr bool | kHasValidate< Server > = true |
template<> | |
constexpr bool | kHasValidate< AuthCheckerSettings > = true |
template<> | |
constexpr auto | kConfigFileMode< AuthCheckerSettings > |
template<> | |
constexpr bool | kHasValidate< Secdist > = true |
template<> | |
constexpr bool | kHasValidate< DefaultSecdistProvider > = true |
template<> | |
constexpr bool | kHasValidate< TestsuiteSupport > = true |
template<> | |
constexpr bool | kHasValidate< Tracer > = true |
template<> | |
constexpr auto | kConfigFileMode< Tracer > = ConfigFileMode::kNotRequired |
template<> | |
constexpr bool | kHasValidate< SystemStatisticsCollector > = true |
const std::string | kFetchAndParseStage = "fetch_and_parse" |
constexpr std::chrono::milliseconds | kCpuRelaxThreshold {10} |
constexpr std::chrono::milliseconds | kCpuRelaxInterval {2} |
template<class MongoCacheTraits > | |
constexpr bool | kHasValidate< MongoCache< MongoCacheTraits > > = true |
template<> | |
constexpr bool | kHasValidate< Mongo > = true |
template<> | |
constexpr bool | kHasValidate< MultiMongo > = true |
template<typename PostgreCachePolicy > | |
constexpr bool | kHasValidate< PostgreCache< PostgreCachePolicy > > = true |
template<> | |
constexpr bool | kHasValidate< Postgres > = true |
template<> | |
constexpr bool | kHasValidate< Redis > = true |
template<> | |
constexpr bool | kHasValidate< ClickHouse > = true |
template<> | |
constexpr bool | kHasValidate< RabbitMQ > = true |
using components::ComponentConfigMap |
Definition at line 30 of file component_config.hpp.
|
strong |
State of the component.
Enumerator | |
---|---|
kOk | component is alive and fine |
kFallback | component in fallback state, but the service keeps working |
kFatal | component is sick, service can not work without it |
Definition at line 14 of file component_base.hpp.
|
strong |
Whether the static config for the component must always be present, or can be missing
Enumerator | |
---|---|
kRequired | component must be setup in config |
kNotRequired | component must be not setup in config |
Definition at line 25 of file component_base.hpp.
|
strong |
Definition at line 12 of file static_config_validator.hpp.
void components::Run | ( | const InMemoryConfig & | config, |
const ComponentList & | component_list ) |
Starts a server with the provided component list and config. Reopens the logging files on SIGUSR1.
void components::Run | ( | const std::string & | config_path, |
const std::optional< std::string > & | config_vars_path, | ||
const std::optional< std::string > & | config_vars_override_path, | ||
const ComponentList & | component_list ) |
Starts a server with the provided component list and config loaded from file. Reopens the logging files on SIGUSR1.
void components::RunOnce | ( | const InMemoryConfig & | config, |
const ComponentList & | component_list ) |
Runs the component list once with the config.
void components::RunOnce | ( | const std::string & | config_path, |
const std::optional< std::string > & | config_vars_path, | ||
const std::optional< std::string > & | config_vars_override_path, | ||
const ComponentList & | component_list ) |
Runs the component list once with the config loaded from file.
|
inlineconstexpr |
Specialize this to customize the loading of component settings
Definition at line 71 of file component_base.hpp.
|
inlineconstexpr |
Definition at line 49 of file auth_checker_settings_component.hpp.
|
inlineconstexpr |
Definition at line 124 of file component.hpp.
|
inlineconstexpr |
Definition at line 88 of file manager_controller_component.hpp.
|
inlineconstexpr |
Definition at line 65 of file statistics_storage.hpp.
|
inlineconstexpr |
Definition at line 50 of file component.hpp.
|
inlineconstexpr |
Definition at line 31 of file base_mongo_cache.hpp.
|
inlineconstexpr |
Definition at line 30 of file base_mongo_cache.hpp.
|
inline |
Definition at line 28 of file base_mongo_cache.hpp.
|
inlineconstexpr |
Specialize it for typename Component to validate static config against schema from Component::GetStaticConfigSchema
Definition at line 65 of file component_base.hpp.
|
inlineconstexpr |
Definition at line 46 of file auth_checker_settings_component.hpp.
|
inlineconstexpr |
Definition at line 77 of file component.hpp.
|
inlineconstexpr |
Definition at line 74 of file provider_component.hpp.
|
inlineconstexpr |
Definition at line 48 of file dump_configurator.hpp.
|
inlineconstexpr |
Definition at line 121 of file component.hpp.
|
inlineconstexpr |
Definition at line 60 of file component.hpp.
|
inlineconstexpr |
Definition at line 138 of file component.hpp.
|
inlineconstexpr |
Definition at line 46 of file fs_cache.hpp.
|
inlineconstexpr |
Definition at line 88 of file component.hpp.
|
inlineconstexpr |
Definition at line 130 of file component.hpp.
|
inlineconstexpr |
}@
Definition at line 67 of file logging_configurator.hpp.
|
inlineconstexpr |
Definition at line 116 of file component.hpp.
|
inlineconstexpr |
Definition at line 161 of file base_mongo_cache.hpp.
|
inlineconstexpr |
Definition at line 214 of file component.hpp.
|
inlineconstexpr |
Definition at line 439 of file base_postgres_cache.hpp.
|
inlineconstexpr |
Definition at line 188 of file component.hpp.
|
inlineconstexpr |
Definition at line 40 of file process_starter.hpp.
|
inlineconstexpr |
Definition at line 77 of file component.hpp.
|
inlineconstexpr |
Definition at line 165 of file component.hpp.
|
inlineconstexpr |
Definition at line 63 of file component.hpp.
|
inlineconstexpr |
Definition at line 120 of file component.hpp.
|
inlineconstexpr |
Definition at line 52 of file single_threaded_task_processors.hpp.
|
inlineconstexpr |
Definition at line 62 of file statistics_storage.hpp.
|
inlineconstexpr |
Definition at line 58 of file system_statistics_collector.hpp.
|
inlineconstexpr |
Definition at line 95 of file testsuite_support.hpp.
|
inlineconstexpr |
Definition at line 47 of file component.hpp.