|
Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
|
Fault tolerance manager template class. More...
#include <fault_tolerance_manager.h>

Public Member Functions | |
| fault_tolerance_manager () | |
| fault_tolerance_manager (const std::string &name) | |
| fault_tolerance_manager (const std::string &name, const fault_tolerance_config &cfg) | |
| template<typename Func > | |
| common::Result< T > | execute (Func &&func) |
| Execute a function with fault tolerance. | |
| template<typename Func > | |
| common::Result< T > | execute_with_timeout (Func &&func, std::chrono::milliseconds timeout) |
| Execute a function with timeout. | |
| common::Result< bool > | is_healthy () |
| Check if fault tolerance manager is healthy. | |
| fault_tolerance_metrics | get_metrics () const |
| Get fault tolerance metrics. | |
| const std::string & | get_name () const |
| Get manager name. | |
Private Member Functions | |
| void | initialize () |
| template<typename Func > | |
| common::Result< T > | execute_internal (Func &&func) |
| template<typename Func > | |
| common::Result< T > | execute_circuit_breaker_first (Func &&func) |
| template<typename Func > | |
| common::Result< T > | execute_retry_first (Func &&func) |
Private Attributes | |
| std::string | name_ |
| fault_tolerance_config | config_ |
| std::unique_ptr< circuit_breaker > | circuit_breaker_ |
| std::unique_ptr< retry_executor< T > > | retry_executor_ |
| fault_tolerance_metrics | metrics_ |
Fault tolerance manager template class.
Combines circuit breaker and retry logic for resilient operations.
| T | The return value type of operations |
Definition at line 105 of file fault_tolerance_manager.h.
|
inline |
Definition at line 107 of file fault_tolerance_manager.h.
References kcenon::monitoring::fault_tolerance_manager< T >::initialize().

|
inlineexplicit |
Definition at line 111 of file fault_tolerance_manager.h.
References kcenon::monitoring::fault_tolerance_manager< T >::initialize().

|
inlineexplicit |
Definition at line 116 of file fault_tolerance_manager.h.
References kcenon::monitoring::fault_tolerance_manager< T >::initialize().

|
inline |
Execute a function with fault tolerance.
| Func | The function type to execute (must return common::Result<T>) |
| func | The function to execute |
Definition at line 129 of file fault_tolerance_manager.h.
References kcenon::monitoring::fault_tolerance_config::circuit_breaker_first, kcenon::monitoring::fault_tolerance_manager< T >::config_, kcenon::monitoring::fault_tolerance_manager< T >::execute_circuit_breaker_first(), kcenon::monitoring::fault_tolerance_manager< T >::execute_retry_first(), kcenon::monitoring::fault_tolerance_metrics::failed_operations, kcenon::monitoring::fault_tolerance_manager< T >::metrics_, kcenon::monitoring::operation_failed, kcenon::monitoring::fault_tolerance_metrics::successful_operations, and kcenon::monitoring::fault_tolerance_metrics::total_operations.
Referenced by TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().


|
inlineprivate |
Definition at line 229 of file fault_tolerance_manager.h.
References kcenon::monitoring::fault_tolerance_manager< T >::circuit_breaker_, kcenon::monitoring::fault_tolerance_manager< T >::config_, kcenon::monitoring::fault_tolerance_config::enable_circuit_breaker, kcenon::monitoring::fault_tolerance_config::enable_retry, kcenon::monitoring::execute_with_circuit_breaker(), kcenon::monitoring::fault_tolerance_manager< T >::name_, and kcenon::monitoring::fault_tolerance_manager< T >::retry_executor_.
Referenced by kcenon::monitoring::fault_tolerance_manager< T >::execute(), and kcenon::monitoring::fault_tolerance_manager< T >::execute_internal().


|
inlineprivate |
Definition at line 221 of file fault_tolerance_manager.h.
References kcenon::monitoring::fault_tolerance_config::circuit_breaker_first, kcenon::monitoring::fault_tolerance_manager< T >::config_, kcenon::monitoring::fault_tolerance_manager< T >::execute_circuit_breaker_first(), and kcenon::monitoring::fault_tolerance_manager< T >::execute_retry_first().
Referenced by kcenon::monitoring::fault_tolerance_manager< T >::execute_with_timeout().


|
inlineprivate |
Definition at line 245 of file fault_tolerance_manager.h.
References kcenon::monitoring::fault_tolerance_manager< T >::circuit_breaker_, kcenon::monitoring::fault_tolerance_manager< T >::config_, kcenon::monitoring::fault_tolerance_config::enable_circuit_breaker, kcenon::monitoring::fault_tolerance_config::enable_retry, kcenon::monitoring::execute_with_circuit_breaker(), kcenon::monitoring::fault_tolerance_manager< T >::name_, and kcenon::monitoring::fault_tolerance_manager< T >::retry_executor_.
Referenced by kcenon::monitoring::fault_tolerance_manager< T >::execute(), and kcenon::monitoring::fault_tolerance_manager< T >::execute_internal().


|
inline |
Execute a function with timeout.
| Func | The function type to execute (must return common::Result<T>) |
| func | The function to execute |
| timeout | Maximum execution time |
Definition at line 158 of file fault_tolerance_manager.h.
References kcenon::monitoring::fault_tolerance_manager< T >::execute_internal(), kcenon::monitoring::fault_tolerance_metrics::failed_operations, kcenon::monitoring::fault_tolerance_manager< T >::metrics_, kcenon::monitoring::operation_timeout, kcenon::monitoring::fault_tolerance_metrics::successful_operations, kcenon::monitoring::fault_tolerance_metrics::timeouts, and kcenon::monitoring::fault_tolerance_metrics::total_operations.
Referenced by TEST_F().


|
inline |
Get fault tolerance metrics.
Definition at line 199 of file fault_tolerance_manager.h.
References kcenon::monitoring::fault_tolerance_manager< T >::metrics_.
Referenced by TEST_F().

|
inline |
Get manager name.
Definition at line 206 of file fault_tolerance_manager.h.
References kcenon::monitoring::fault_tolerance_manager< T >::name_.
|
inlineprivate |
Definition at line 211 of file fault_tolerance_manager.h.
References kcenon::monitoring::fault_tolerance_manager< T >::circuit_breaker_, kcenon::monitoring::fault_tolerance_config::circuit_config, kcenon::monitoring::fault_tolerance_manager< T >::config_, kcenon::monitoring::fault_tolerance_config::enable_circuit_breaker, kcenon::monitoring::fault_tolerance_config::enable_retry, kcenon::monitoring::fault_tolerance_manager< T >::name_, kcenon::monitoring::fault_tolerance_config::retry_cfg, and kcenon::monitoring::fault_tolerance_manager< T >::retry_executor_.
Referenced by kcenon::monitoring::fault_tolerance_manager< T >::fault_tolerance_manager(), kcenon::monitoring::fault_tolerance_manager< T >::fault_tolerance_manager(), and kcenon::monitoring::fault_tolerance_manager< T >::fault_tolerance_manager().

|
inline |
Check if fault tolerance manager is healthy.
Definition at line 186 of file fault_tolerance_manager.h.
References kcenon::monitoring::fault_tolerance_manager< T >::circuit_breaker_, kcenon::monitoring::fault_tolerance_manager< T >::config_, and kcenon::monitoring::fault_tolerance_config::enable_circuit_breaker.
Referenced by TEST_F().

|
private |
Definition at line 262 of file fault_tolerance_manager.h.
Referenced by kcenon::monitoring::fault_tolerance_manager< T >::execute_circuit_breaker_first(), kcenon::monitoring::fault_tolerance_manager< T >::execute_retry_first(), kcenon::monitoring::fault_tolerance_manager< T >::initialize(), and kcenon::monitoring::fault_tolerance_manager< T >::is_healthy().
|
private |
Definition at line 261 of file fault_tolerance_manager.h.
Referenced by kcenon::monitoring::fault_tolerance_manager< T >::execute(), kcenon::monitoring::fault_tolerance_manager< T >::execute_circuit_breaker_first(), kcenon::monitoring::fault_tolerance_manager< T >::execute_internal(), kcenon::monitoring::fault_tolerance_manager< T >::execute_retry_first(), kcenon::monitoring::fault_tolerance_manager< T >::initialize(), and kcenon::monitoring::fault_tolerance_manager< T >::is_healthy().
|
mutableprivate |
|
private |
Definition at line 260 of file fault_tolerance_manager.h.
Referenced by kcenon::monitoring::fault_tolerance_manager< T >::execute_circuit_breaker_first(), kcenon::monitoring::fault_tolerance_manager< T >::execute_retry_first(), kcenon::monitoring::fault_tolerance_manager< T >::get_name(), and kcenon::monitoring::fault_tolerance_manager< T >::initialize().
|
private |