|
Thread System 0.3.1
High-performance C++20 thread pool with work stealing and DAG scheduling
|
Lightweight metrics container shared between thread_pool and workers. More...
#include <thread_pool_metrics.h>


Classes | |
| struct | Snapshot |
| Snapshot structure containing all metric values. More... | |
Public Member Functions | |
| ThreadPoolMetrics ()=default | |
| Default constructor. | |
| ~ThreadPoolMetrics () override=default | |
| Virtual destructor. | |
| void | record_enqueue (std::size_t count=1) |
| Record enqueue operation(s). | |
| std::uint64_t | tasks_enqueued () const |
| Get the total number of tasks enqueued. | |
| void | reset () override |
| Reset all metrics to their initial state. | |
| Snapshot | snapshot () const |
| Get a snapshot of all metrics. | |
Public Member Functions inherited from kcenon::thread::metrics::MetricsBase | |
| 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. | |
| 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. | |
Private Attributes | |
| std::atomic< std::uint64_t > | tasks_enqueued_ {0} |
| Counter for enqueued tasks. | |
Additional Inherited Members | |
Protected Member Functions inherited from kcenon::thread::metrics::MetricsBase | |
| 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 inherited from kcenon::thread::metrics::MetricsBase | |
| 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. | |
Lightweight metrics container shared between thread_pool and workers.
This class extends MetricsBase with an additional enqueue counter, providing minimal overhead for basic metrics tracking.
All methods are thread-safe using lock-free atomic operations.
Definition at line 51 of file thread_pool_metrics.h.
|
default |
Default constructor.
|
overridedefault |
Virtual destructor.
|
inline |
Record enqueue operation(s).
| count | Number of tasks enqueued (default: 1). |
Definition at line 81 of file thread_pool_metrics.h.
References tasks_enqueued_.
|
inlineoverridevirtual |
Reset all metrics to their initial state.
Reimplemented from kcenon::thread::metrics::MetricsBase.
Definition at line 96 of file thread_pool_metrics.h.
References kcenon::thread::metrics::MetricsBase::reset(), and tasks_enqueued_.
Referenced by kcenon::thread::thread_pool::reset_metrics().


|
inlinenodiscard |
Get a snapshot of all metrics.
Definition at line 105 of file thread_pool_metrics.h.
References tasks_enqueued_, kcenon::thread::metrics::MetricsBase::tasks_executed(), kcenon::thread::metrics::MetricsBase::tasks_failed(), kcenon::thread::metrics::MetricsBase::tasks_submitted(), kcenon::thread::metrics::MetricsBase::total_busy_time_ns(), and kcenon::thread::metrics::MetricsBase::total_idle_time_ns().
Referenced by kcenon::thread::autoscaler::collect_metrics(), kcenon::thread::diagnostics::thread_pool_diagnostics::detect_bottlenecks(), and kcenon::thread::diagnostics::thread_pool_diagnostics::health_check().


|
inlinenodiscard |
Get the total number of tasks enqueued.
Definition at line 89 of file thread_pool_metrics.h.
References tasks_enqueued_.
|
private |
Counter for enqueued tasks.
This counter tracks tasks that were successfully added to the queue, which may differ from submitted tasks if some are rejected.
Definition at line 123 of file thread_pool_metrics.h.
Referenced by record_enqueue(), reset(), snapshot(), and tasks_enqueued().