Dynamically configurable MongoDB client component. More...
#include <userver/storages/mongo/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.   | |
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 145 of file component.hpp.
Definition at line 178 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 |