#include <userver/storages/mongo/component.hpp>
Dynamically configurable MongoDB client component.
Provides access to a dynamically reconfigurable set of MongoDB databases.
Name | Description | Default value |
---|---|---|
appname | application name for the DB server | userver |
conn_timeout | connection timeout | 2s |
so_timeout | socket timeout | 10s |
queue_timeout | max connection queue wait time | 1s |
initial_size | number of connections created initially (per database) | 16 |
max_size | limit for total connections number (per database) | 128 |
idle_limit | limit for idle connections number (per database) | 64 |
connecting_limit | limit for establishing connections number (per database) | 8 |
local_threshold | latency window for instance selection | mongodb default |
max_replication_lag | replication lag limit for usable secondaries, min. 90s | - |
stats_verbosity | changes the granularity of reported metrics | 'terse' |
dns_resolver | server hostname resolver type (getaddrinfo or async) | 'async' |
stats_verbosity
accepts one of the following values:
Value | Description |
---|---|
terse | Default value, report only cumulative stats and read/write totals |
full | Separate metrics for each operation, divided by read preference or write concern |
Definition at line 169 of file component.hpp.
Public Types | |
using | PoolSet = storages::mongo::MultiMongo::PoolSet |
Public Member Functions | |
MultiMongo (const ComponentConfig &, const ComponentContext &) | |
Component constructor. | |
~MultiMongo () override | |
Component destructor. | |
storages::mongo::PoolPtr | GetPool (const std::string &dbalias) const |
Client pool accessor. | |
void | AddPool (std::string dbalias) |
Adds a database to the working set by its name. Equivalent to NewPoolSet() -AddExistingPools() -AddPool(dbalias) -Activate() | |
bool | RemovePool (const std::string &dbalias) |
Removes the database with the specified name from the working set. Equivalent to NewPoolSet() -AddExistingPools() -RemovePool(dbalias) -Activate() | |
storages::mongo::MultiMongo::PoolSet | NewPoolSet () |
Creates an empty database set bound to the component. | |
Public Member Functions inherited from components::LoggableComponentBase | |
LoggableComponentBase (const ComponentConfig &, const ComponentContext &) | |
LoggableComponentBase (LoggableComponentBase &&)=delete | |
LoggableComponentBase (const LoggableComponentBase &)=delete | |
~LoggableComponentBase () override=default | |
ComponentHealth | GetComponentHealth () const override |
void | OnLoadingCancelled () override |
void | OnAllComponentsLoaded () override |
void | OnAllComponentsAreStopping () override |
Static Public Member Functions | |
static yaml_config::Schema | GetStaticConfigSchema () |
Static Public Member Functions inherited from components::LoggableComponentBase | |
static yaml_config::Schema | GetStaticConfigSchema () |
Static Public Attributes | |
static constexpr std::string_view | kName = "multi-mongo" |
The default name of components::MultiMongo. | |
Definition at line 202 of file component.hpp.
void components::MultiMongo::AddPool | ( | std::string | dbalias | ) |
Adds a database to the working set by its name. Equivalent to NewPoolSet()
-AddExistingPools()
-AddPool(dbalias)
-Activate()
dbalias | name of the database in secdist config |
storages::mongo::PoolPtr components::MultiMongo::GetPool | ( | const std::string & | dbalias | ) | const |
Client pool accessor.
dbalias | name previously passed to AddPool |
PoolNotFound | if no such database is enabled |
bool components::MultiMongo::RemovePool | ( | const std::string & | dbalias | ) |
Removes the database with the specified name from the working set. Equivalent to NewPoolSet()
-AddExistingPools()
-RemovePool(dbalias)
-Activate()
dbalias | name of the database passed to AddPool |