|
Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
|
Unified factory for metric collector instantiation. More...
#include <metric_factory.h>

Public Member Functions | |
| ~metric_factory ()=default | |
| metric_factory (const metric_factory &)=delete | |
| metric_factory & | operator= (const metric_factory &)=delete |
| metric_factory (metric_factory &&)=delete | |
| metric_factory & | operator= (metric_factory &&)=delete |
| bool | register_collector (const std::string &name, collector_factory_fn factory) |
| Register a collector factory function. | |
| template<typename T > | |
| bool | register_collector (const std::string &name) |
| Register a collector type using template. | |
| bool | unregister_collector (const std::string &name) |
| Unregister a collector. | |
| bool | is_registered (const std::string &name) const |
| Check if a collector is registered. | |
| std::vector< std::string > | get_registered_collectors () const |
| Get list of registered collector names. | |
| create_result | create (const std::string &name, const config_map &config={}) |
| Create a collector instance. | |
| std::unique_ptr< collector_interface > | create_or_null (const std::string &name, const config_map &config={}) |
| Create a collector and return raw pointer (for compatibility) | |
| std::vector< std::unique_ptr< collector_interface > > | create_multiple (const std::unordered_map< std::string, config_map > &configs) |
| Create multiple collectors from configuration. | |
| void | clear () |
| Clear all registered collectors. | |
Static Public Member Functions | |
| static metric_factory & | instance () |
| Get the singleton instance. | |
Private Member Functions | |
| metric_factory ()=default | |
Private Attributes | |
| std::mutex | mutex_ |
| std::unordered_map< std::string, collector_factory_fn > | factories_ |
Unified factory for metric collector instantiation.
This singleton factory provides centralized creation and configuration of metric collectors. Features include:
Thread-safe for all operations.
Definition at line 118 of file metric_factory.h.
|
default |
|
delete |
|
delete |
|
privatedefault |
|
inline |
Clear all registered collectors.
Definition at line 292 of file metric_factory.h.
References factories_, and mutex_.
|
inline |
Create a collector instance.
| name | The collector name |
| config | Configuration options |
Definition at line 205 of file metric_factory.h.
Referenced by create_multiple().

|
inline |
Create multiple collectors from configuration.
| configs | Map of collector name to configuration |
Definition at line 274 of file metric_factory.h.
References kcenon::monitoring::create_result::collector, and create().

|
inline |
Create a collector and return raw pointer (for compatibility)
| name | The collector name |
| config | Configuration options |
Definition at line 263 of file metric_factory.h.
|
inline |
Get list of registered collector names.
Definition at line 189 of file metric_factory.h.
References factories_, and mutex_.
|
inlinestatic |
Get the singleton instance.
Definition at line 124 of file metric_factory.h.
References instance().
Referenced by instance(), main(), kcenon::monitoring::register_crtp_collector(), kcenon::monitoring::register_plugin_collector(), and kcenon::monitoring::register_standalone_collector().


|
inline |
Check if a collector is registered.
| name | The collector name to check |
Definition at line 180 of file metric_factory.h.
References factories_, and mutex_.
|
delete |
|
delete |
|
inline |
Register a collector type using template.
| T | The collector type (must derive from collector_interface) |
| name | The collector name (identifier) |
Definition at line 159 of file metric_factory.h.
References register_collector().

|
inline |
Register a collector factory function.
| name | The collector name (identifier) |
| factory | Factory function that creates the collector |
Definition at line 143 of file metric_factory.h.
References factories_, and mutex_.
Referenced by register_collector(), kcenon::monitoring::register_crtp_collector(), kcenon::monitoring::register_plugin_collector(), and kcenon::monitoring::register_standalone_collector().

|
inline |
Unregister a collector.
| name | The collector name to unregister |
Definition at line 170 of file metric_factory.h.
References factories_, and mutex_.
|
private |
Definition at line 301 of file metric_factory.h.
Referenced by clear(), get_registered_collectors(), is_registered(), register_collector(), and unregister_collector().
|
mutableprivate |
Definition at line 300 of file metric_factory.h.
Referenced by clear(), get_registered_collectors(), is_registered(), register_collector(), and unregister_collector().