|
Thread System 0.3.1
High-performance C++20 thread pool with work stealing and DAG scheduling
|
Abstract base class for thread pool metrics. More...
#include <metrics_base.h>


Public Member Functions | |
| virtual | ~MetricsBase ()=default |
| Virtual destructor for proper cleanup in derived classes. | |
| void | record_submission (std::size_t count=1) |
| Record task submission(s). | |
| void | record_execution (std::uint64_t duration_ns, bool success) |
| Record task execution completion. | |
| void | record_idle_time (std::uint64_t duration_ns) |
| Record idle time. | |
| virtual void | reset () |
| Reset all metrics to their initial state. | |
| std::uint64_t | tasks_submitted () const |
| Get the total number of tasks submitted. | |
| std::uint64_t | tasks_executed () const |
| Get the total number of tasks successfully executed. | |
| std::uint64_t | tasks_failed () const |
| Get the total number of failed tasks. | |
| std::uint64_t | total_busy_time_ns () const |
| Get the total busy time in nanoseconds. | |
| std::uint64_t | total_idle_time_ns () const |
| Get the total idle time in nanoseconds. | |
| BaseSnapshot | base_snapshot () const |
| Get a base snapshot of common metrics. | |
| double | utilization () const |
| Calculate worker utilization ratio. | |
| double | success_rate () const |
| Calculate task success rate. | |
Protected Member Functions | |
| MetricsBase ()=default | |
| Default constructor. | |
| MetricsBase (const MetricsBase &)=delete | |
| Copy constructor (deleted for thread safety). | |
| MetricsBase & | operator= (const MetricsBase &)=delete |
| Copy assignment operator (deleted for thread safety). | |
| MetricsBase (MetricsBase &&)=delete | |
| Move constructor (deleted for thread safety). | |
| MetricsBase & | operator= (MetricsBase &&)=delete |
| Move assignment operator (deleted for thread safety). | |
Protected Attributes | |
| std::atomic< std::uint64_t > | tasks_submitted_ {0} |
| Counter for submitted tasks. | |
| std::atomic< std::uint64_t > | tasks_executed_ {0} |
| Counter for successfully executed tasks. | |
| std::atomic< std::uint64_t > | tasks_failed_ {0} |
| Counter for failed tasks. | |
| std::atomic< std::uint64_t > | total_busy_time_ns_ {0} |
| Accumulated busy time in nanoseconds. | |
| std::atomic< std::uint64_t > | total_idle_time_ns_ {0} |
| Accumulated idle time in nanoseconds. | |
Abstract base class for thread pool metrics.
This class provides the common atomic counters and recording methods shared between ThreadPoolMetrics and EnhancedThreadPoolMetrics, eliminating code duplication while maintaining a consistent interface.
All methods are thread-safe using lock-free atomic operations with relaxed memory ordering for optimal performance.
This class is not intended to be used directly. Use ThreadPoolMetrics for lightweight metrics or EnhancedThreadPoolMetrics for full-featured production observability.
Definition at line 84 of file metrics_base.h.
|
virtualdefault |
Virtual destructor for proper cleanup in derived classes.
|
protecteddefault |
Default constructor.
|
protecteddelete |
Copy constructor (deleted for thread safety).
|
protecteddelete |
Move constructor (deleted for thread safety).
|
inlinenodiscard |
Get a base snapshot of common metrics.
Definition at line 187 of file metrics_base.h.
References tasks_executed_, tasks_failed_, tasks_submitted_, total_busy_time_ns_, and total_idle_time_ns_.
|
protecteddelete |
Copy assignment operator (deleted for thread safety).
|
protecteddelete |
Move assignment operator (deleted for thread safety).
|
inline |
Record task execution completion.
| duration_ns | Execution duration in nanoseconds. |
| success | Whether the task completed successfully. |
Definition at line 108 of file metrics_base.h.
References kcenon::thread::success, tasks_executed_, tasks_failed_, and total_busy_time_ns_.
|
inline |
Record idle time.
| duration_ns | Idle duration in nanoseconds. |
Definition at line 121 of file metrics_base.h.
References total_idle_time_ns_.
|
inline |
Record task submission(s).
| count | Number of tasks submitted (default: 1). |
Definition at line 99 of file metrics_base.h.
References tasks_submitted_.
|
inlinevirtual |
Reset all metrics to their initial state.
Derived classes should override this method to reset their additional metrics, but must call the base implementation.
Reimplemented in kcenon::thread::metrics::EnhancedThreadPoolMetrics, and kcenon::thread::metrics::ThreadPoolMetrics.
Definition at line 131 of file metrics_base.h.
References tasks_executed_, tasks_failed_, tasks_submitted_, total_busy_time_ns_, and total_idle_time_ns_.
Referenced by kcenon::thread::metrics::EnhancedThreadPoolMetrics::reset(), and kcenon::thread::metrics::ThreadPoolMetrics::reset().

|
inlinenodiscard |
Calculate task success rate.
Calculated as: executed / (executed + failed)
Definition at line 216 of file metrics_base.h.
References kcenon::thread::failed, tasks_executed_, and tasks_failed_.
|
inlinenodiscard |
Get the total number of tasks successfully executed.
Definition at line 155 of file metrics_base.h.
References tasks_executed_.
Referenced by kcenon::thread::metrics::EnhancedThreadPoolMetrics::snapshot(), and kcenon::thread::metrics::ThreadPoolMetrics::snapshot().

|
inlinenodiscard |
Get the total number of failed tasks.
Definition at line 163 of file metrics_base.h.
References tasks_failed_.
Referenced by kcenon::thread::metrics::EnhancedThreadPoolMetrics::snapshot(), and kcenon::thread::metrics::ThreadPoolMetrics::snapshot().

|
inlinenodiscard |
Get the total number of tasks submitted.
Definition at line 147 of file metrics_base.h.
References tasks_submitted_.
Referenced by kcenon::thread::metrics::EnhancedThreadPoolMetrics::snapshot(), and kcenon::thread::metrics::ThreadPoolMetrics::snapshot().

|
inlinenodiscard |
Get the total busy time in nanoseconds.
Definition at line 171 of file metrics_base.h.
References total_busy_time_ns_.
Referenced by kcenon::thread::metrics::EnhancedThreadPoolMetrics::snapshot(), and kcenon::thread::metrics::ThreadPoolMetrics::snapshot().

|
inlinenodiscard |
Get the total idle time in nanoseconds.
Definition at line 179 of file metrics_base.h.
References total_idle_time_ns_.
Referenced by kcenon::thread::metrics::EnhancedThreadPoolMetrics::snapshot(), and kcenon::thread::metrics::ThreadPoolMetrics::snapshot().

|
inlinenodiscard |
Calculate worker utilization ratio.
Calculated as: busy_time / (busy_time + idle_time)
Definition at line 203 of file metrics_base.h.
References kcenon::thread::idle, total_busy_time_ns_, and total_idle_time_ns_.
|
protected |
Counter for successfully executed tasks.
Definition at line 261 of file metrics_base.h.
Referenced by base_snapshot(), kcenon::thread::metrics::EnhancedThreadPoolMetrics::record_execution(), record_execution(), reset(), success_rate(), and tasks_executed().
|
protected |
Counter for failed tasks.
Definition at line 266 of file metrics_base.h.
Referenced by base_snapshot(), kcenon::thread::metrics::EnhancedThreadPoolMetrics::record_execution(), record_execution(), reset(), success_rate(), and tasks_failed().
|
protected |
Counter for submitted tasks.
Definition at line 256 of file metrics_base.h.
Referenced by base_snapshot(), kcenon::thread::metrics::EnhancedThreadPoolMetrics::record_submission(), record_submission(), reset(), and tasks_submitted().
|
protected |
Accumulated busy time in nanoseconds.
Definition at line 271 of file metrics_base.h.
Referenced by base_snapshot(), record_execution(), kcenon::thread::metrics::EnhancedThreadPoolMetrics::record_worker_state(), reset(), total_busy_time_ns(), and utilization().
|
protected |
Accumulated idle time in nanoseconds.
Definition at line 276 of file metrics_base.h.
Referenced by base_snapshot(), record_idle_time(), kcenon::thread::metrics::EnhancedThreadPoolMetrics::record_worker_state(), reset(), total_idle_time_ns(), and utilization().