|
Logger System 0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
|
Basic monitoring implementation. More...
#include <basic_monitor.h>


Public Member Functions | |
| basic_monitor () | |
| Constructor. | |
| ~basic_monitor () override=default | |
| Destructor. | |
| result< monitoring_data > | collect_metrics () const override |
| Collect current metrics. | |
| result< health_check_result > | check_health () const override |
| Perform health check. | |
| common::VoidResult | reset_metrics () override |
| Reset all metrics. | |
| common::VoidResult | set_enabled (bool enable) override |
| Enable or disable monitoring. | |
| bool | is_enabled () const override |
| Check if monitoring is enabled. | |
| std::string | get_backend_name () const override |
| Get backend name. | |
| void | increment_counter (const std::string &name, double value=1.0) override |
| Increment a counter. | |
| void | update_gauge (const std::string &name, double value) override |
| Update a gauge. | |
| void | record_histogram (const std::string &name, double value) override |
| Record a histogram value. | |
| void | add_health_issue (const std::string &issue) |
| Add a health issue. | |
| void | clear_health_issues () |
| Clear health issues. | |
Public Member Functions inherited from kcenon::logger::monitoring_interface | |
| virtual | ~monitoring_interface ()=default |
| Virtual destructor. | |
Private Attributes | |
| std::mutex | mutex_ |
| std::atomic< bool > | enabled_ {true} |
| std::atomic< uint64_t > | messages_logged_ {0} |
| std::atomic< uint64_t > | messages_dropped_ {0} |
| std::atomic< uint64_t > | errors_encountered_ {0} |
| std::atomic< uint64_t > | writers_failed_ {0} |
| std::atomic< uint64_t > | total_processing_time_us_ {0} |
| std::atomic< uint64_t > | max_processing_time_us_ {0} |
| std::atomic< uint64_t > | min_processing_time_us_ {UINT64_MAX} |
| std::atomic< size_t > | buffer_usage_bytes_ {0} |
| std::atomic< size_t > | max_buffer_usage_bytes_ {0} |
| std::atomic< size_t > | queue_size_ {0} |
| std::atomic< size_t > | max_queue_size_ {0} |
| std::vector< std::string > | health_issues_ |
| std::unordered_map< std::string, std::atomic< double > > | counters_ |
| std::unordered_map< std::string, std::atomic< double > > | gauges_ |
| std::unordered_map< std::string, std::vector< double > > | histograms_ |
| std::chrono::system_clock::time_point | start_time_ |
Basic monitoring implementation.
This implementation provides essential monitoring capabilities with minimal overhead and no external dependencies.
Definition at line 33 of file basic_monitor.h.
|
inline |
Constructor.
Definition at line 70 of file basic_monitor.h.
|
overridedefault |
Destructor.
|
inline |
Add a health issue.
| issue | Issue description |
Definition at line 413 of file basic_monitor.h.
References health_issues_, and mutex_.
|
inlineoverridevirtual |
Perform health check.
Implements kcenon::logger::monitoring_interface.
Definition at line 187 of file basic_monitor.h.
References errors_encountered_, health_issues_, max_queue_size_, messages_dropped_, messages_logged_, mutex_, queue_size_, and writers_failed_.
|
inline |
Clear health issues.
Definition at line 421 of file basic_monitor.h.
References health_issues_, and mutex_.
|
inlineoverridevirtual |
Collect current metrics.
Implements kcenon::logger::monitoring_interface.
Definition at line 81 of file basic_monitor.h.
References kcenon::logger::monitoring_data::add_metric(), buffer_usage_bytes_, kcenon::logger::counter, counters_, enabled_, errors_encountered_, kcenon::logger::gauge, gauges_, histograms_, max_buffer_usage_bytes_, max_processing_time_us_, max_queue_size_, messages_dropped_, messages_logged_, kcenon::logger::metrics_not_available, min_processing_time_us_, mutex_, queue_size_, start_time_, kcenon::logger::summary, total_processing_time_us_, and writers_failed_.

|
inlineoverridevirtual |
Get backend name.
Implements kcenon::logger::monitoring_interface.
Definition at line 315 of file basic_monitor.h.
|
inlineoverridevirtual |
Increment a counter.
| name | Counter name |
| value | Increment value |
Implements kcenon::logger::monitoring_interface.
Definition at line 324 of file basic_monitor.h.
References counters_, enabled_, errors_encountered_, messages_dropped_, messages_logged_, mutex_, and writers_failed_.
|
inlineoverridevirtual |
Check if monitoring is enabled.
Implements kcenon::logger::monitoring_interface.
Definition at line 307 of file basic_monitor.h.
References enabled_.
|
inlineoverridevirtual |
Record a histogram value.
| name | Histogram name |
| value | Value to record |
Implements kcenon::logger::monitoring_interface.
Definition at line 376 of file basic_monitor.h.
References enabled_, histograms_, max_processing_time_us_, min_processing_time_us_, mutex_, kcenon::logger::size, and total_processing_time_us_.
|
inlineoverridevirtual |
Reset all metrics.
Implements kcenon::logger::monitoring_interface.
Definition at line 265 of file basic_monitor.h.
References buffer_usage_bytes_, counters_, errors_encountered_, gauges_, health_issues_, histograms_, max_buffer_usage_bytes_, max_processing_time_us_, max_queue_size_, messages_dropped_, messages_logged_, min_processing_time_us_, mutex_, kcenon::common::ok(), queue_size_, start_time_, total_processing_time_us_, and writers_failed_.

|
inlineoverridevirtual |
Enable or disable monitoring.
| enable | true to enable |
Implements kcenon::logger::monitoring_interface.
Definition at line 298 of file basic_monitor.h.
References enabled_, and kcenon::common::ok().

|
inlineoverridevirtual |
Update a gauge.
| name | Gauge name |
| value | New value |
Implements kcenon::logger::monitoring_interface.
Definition at line 346 of file basic_monitor.h.
References buffer_usage_bytes_, enabled_, gauges_, max_buffer_usage_bytes_, max_queue_size_, mutex_, and queue_size_.
|
private |
Definition at line 50 of file basic_monitor.h.
Referenced by collect_metrics(), reset_metrics(), and update_gauge().
|
mutableprivate |
Definition at line 59 of file basic_monitor.h.
Referenced by collect_metrics(), increment_counter(), and reset_metrics().
|
private |
Definition at line 36 of file basic_monitor.h.
Referenced by collect_metrics(), increment_counter(), is_enabled(), record_histogram(), set_enabled(), and update_gauge().
|
private |
Definition at line 41 of file basic_monitor.h.
Referenced by check_health(), collect_metrics(), increment_counter(), and reset_metrics().
|
mutableprivate |
Definition at line 60 of file basic_monitor.h.
Referenced by collect_metrics(), reset_metrics(), and update_gauge().
|
mutableprivate |
Definition at line 56 of file basic_monitor.h.
Referenced by add_health_issue(), check_health(), clear_health_issues(), and reset_metrics().
|
mutableprivate |
Definition at line 61 of file basic_monitor.h.
Referenced by collect_metrics(), record_histogram(), and reset_metrics().
|
private |
Definition at line 51 of file basic_monitor.h.
Referenced by collect_metrics(), reset_metrics(), and update_gauge().
|
private |
Definition at line 46 of file basic_monitor.h.
Referenced by collect_metrics(), record_histogram(), and reset_metrics().
|
private |
Definition at line 53 of file basic_monitor.h.
Referenced by check_health(), collect_metrics(), reset_metrics(), and update_gauge().
|
private |
Definition at line 40 of file basic_monitor.h.
Referenced by check_health(), collect_metrics(), increment_counter(), and reset_metrics().
|
private |
Definition at line 39 of file basic_monitor.h.
Referenced by check_health(), collect_metrics(), increment_counter(), and reset_metrics().
|
private |
Definition at line 47 of file basic_monitor.h.
Referenced by collect_metrics(), record_histogram(), and reset_metrics().
|
mutableprivate |
Definition at line 35 of file basic_monitor.h.
Referenced by add_health_issue(), check_health(), clear_health_issues(), collect_metrics(), increment_counter(), record_histogram(), reset_metrics(), and update_gauge().
|
private |
Definition at line 52 of file basic_monitor.h.
Referenced by check_health(), collect_metrics(), reset_metrics(), and update_gauge().
|
private |
Definition at line 64 of file basic_monitor.h.
Referenced by collect_metrics(), and reset_metrics().
|
private |
Definition at line 45 of file basic_monitor.h.
Referenced by collect_metrics(), record_histogram(), and reset_metrics().
|
private |
Definition at line 42 of file basic_monitor.h.
Referenced by check_health(), collect_metrics(), increment_counter(), and reset_metrics().