|
Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
|
CRTP base class for metric collectors. More...
#include <collector_base.h>

Public Member Functions | |
| collector_base ()=default | |
| virtual | ~collector_base ()=default |
| collector_base (const collector_base &)=delete | |
| collector_base & | operator= (const collector_base &)=delete |
| collector_base (collector_base &&)=delete | |
| collector_base & | operator= (collector_base &&)=delete |
| bool | initialize (const config_map &config) |
| Initialize the collector with configuration. | |
| std::vector< metric > | collect () |
| Collect metrics from the data source. | |
| std::string | get_name () const |
| Get the name of this collector. | |
| std::vector< std::string > | get_metric_types () const |
| Get supported metric types. | |
| bool | is_healthy () const |
| Check if the collector is healthy. | |
| stats_map | get_statistics () const |
| Get collector statistics. | |
| bool | is_enabled () const |
| Check if collector is enabled. | |
| size_t | get_collection_count () const |
| Get collection count. | |
| size_t | get_collection_errors () const |
| Get error count. | |
Protected Member Functions | |
| metric | create_base_metric (const std::string &name, double value, const std::unordered_map< std::string, std::string > &tags={}, const std::string &="") const |
| Create a metric with common tags. | |
Protected Attributes | |
| bool | enabled_ {true} |
| std::mutex | stats_mutex_ |
| std::atomic< size_t > | collection_count_ {0} |
| std::atomic< size_t > | collection_errors_ {0} |
Private Member Functions | |
| Derived & | derived () |
| Get reference to derived class (CRTP helper) | |
| const Derived & | derived () const |
CRTP base class for metric collectors.
This template class implements common functionality shared by all collectors:
| Derived | The derived collector class (CRTP pattern) |
Definition at line 83 of file collector_base.h.
|
default |
|
virtualdefault |
|
delete |
|
delete |
|
inline |
Collect metrics from the data source.
Definition at line 113 of file collector_base.h.
References kcenon::monitoring::collector_base< Derived >::collection_count_, kcenon::monitoring::collector_base< Derived >::collection_errors_, kcenon::monitoring::collector_base< Derived >::derived(), and kcenon::monitoring::collector_base< Derived >::enabled_.

|
inlineprotected |
Create a metric with common tags.
| name | Metric name |
| value | Metric value |
| tags | Additional tags |
| unit | Optional unit string (not used, for documentation) |
Definition at line 201 of file collector_base.h.
|
inlineprivate |
Get reference to derived class (CRTP helper)
Definition at line 225 of file collector_base.h.
Referenced by kcenon::monitoring::collector_base< Derived >::collect(), kcenon::monitoring::collector_base< Derived >::get_metric_types(), kcenon::monitoring::collector_base< Derived >::get_statistics(), kcenon::monitoring::collector_base< Derived >::initialize(), and kcenon::monitoring::collector_base< Derived >::is_healthy().

|
inlineprivate |
Definition at line 226 of file collector_base.h.
|
inline |
Get collection count.
Definition at line 184 of file collector_base.h.
References kcenon::monitoring::collector_base< Derived >::collection_count_.
|
inline |
Get error count.
Definition at line 190 of file collector_base.h.
References kcenon::monitoring::collector_base< Derived >::collection_errors_.
|
inline |
Get supported metric types.
Definition at line 140 of file collector_base.h.
References kcenon::monitoring::collector_base< Derived >::derived().

|
inline |
Get the name of this collector.
Definition at line 132 of file collector_base.h.
|
inline |
Get collector statistics.
Definition at line 159 of file collector_base.h.
References kcenon::monitoring::collector_base< Derived >::collection_count_, kcenon::monitoring::collector_base< Derived >::collection_errors_, kcenon::monitoring::collector_base< Derived >::derived(), kcenon::monitoring::collector_base< Derived >::enabled_, and kcenon::monitoring::collector_base< Derived >::stats_mutex_.

|
inline |
Initialize the collector with configuration.
| config | Configuration options (common: "enabled") |
Definition at line 99 of file collector_base.h.
References kcenon::monitoring::collector_base< Derived >::derived(), and kcenon::monitoring::collector_base< Derived >::enabled_.

|
inline |
Check if collector is enabled.
Definition at line 178 of file collector_base.h.
References kcenon::monitoring::collector_base< Derived >::enabled_.
|
inline |
Check if the collector is healthy.
Definition at line 148 of file collector_base.h.
References kcenon::monitoring::collector_base< Derived >::derived(), and kcenon::monitoring::collector_base< Derived >::enabled_.

|
delete |
|
delete |
|
protected |
Definition at line 218 of file collector_base.h.
Referenced by kcenon::monitoring::collector_base< Derived >::collect(), kcenon::monitoring::collector_base< Derived >::get_collection_count(), and kcenon::monitoring::collector_base< Derived >::get_statistics().
|
protected |
Definition at line 219 of file collector_base.h.
Referenced by kcenon::monitoring::collector_base< Derived >::collect(), kcenon::monitoring::collector_base< Derived >::get_collection_errors(), and kcenon::monitoring::collector_base< Derived >::get_statistics().
|
protected |
Definition at line 214 of file collector_base.h.
Referenced by kcenon::monitoring::collector_base< Derived >::collect(), kcenon::monitoring::collector_base< Derived >::get_statistics(), kcenon::monitoring::collector_base< Derived >::initialize(), kcenon::monitoring::collector_base< Derived >::is_enabled(), and kcenon::monitoring::collector_base< Derived >::is_healthy().
|
mutableprotected |
Definition at line 217 of file collector_base.h.
Referenced by kcenon::monitoring::collector_base< Derived >::get_statistics().