#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.
Inheritance diagram for components::MultiMongo:
Collaboration diagram for components::MultiMongo: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 |