206 const auto total = busy +
idle;
207 return (total > 0) ?
static_cast<double>(busy) /
static_cast<double>(total) : 0.0;
219 const auto total = executed +
failed;
220 return (total > 0) ?
static_cast<double>(executed) /
static_cast<double>(total) : 1.0;
Abstract base class for thread pool metrics.
void record_idle_time(std::uint64_t duration_ns)
Record idle time.
std::uint64_t total_busy_time_ns() const
Get the total busy time in nanoseconds.
std::atomic< std::uint64_t > tasks_failed_
Counter for failed tasks.
MetricsBase & operator=(MetricsBase &&)=delete
Move assignment operator (deleted for thread safety).
std::uint64_t tasks_executed() const
Get the total number of tasks successfully executed.
virtual ~MetricsBase()=default
Virtual destructor for proper cleanup in derived classes.
MetricsBase & operator=(const MetricsBase &)=delete
Copy assignment operator (deleted for thread safety).
std::atomic< std::uint64_t > total_idle_time_ns_
Accumulated idle time in nanoseconds.
std::uint64_t tasks_submitted() const
Get the total number of tasks submitted.
MetricsBase(MetricsBase &&)=delete
Move constructor (deleted for thread safety).
MetricsBase(const MetricsBase &)=delete
Copy constructor (deleted for thread safety).
std::uint64_t tasks_failed() const
Get the total number of failed tasks.
double success_rate() const
Calculate task success rate.
BaseSnapshot base_snapshot() const
Get a base snapshot of common metrics.
std::atomic< std::uint64_t > total_busy_time_ns_
Accumulated busy time in nanoseconds.
MetricsBase()=default
Default constructor.
std::atomic< std::uint64_t > tasks_submitted_
Counter for submitted tasks.
double utilization() const
Calculate worker utilization ratio.
std::uint64_t total_idle_time_ns() const
Get the total idle time in nanoseconds.
std::atomic< std::uint64_t > tasks_executed_
Counter for successfully executed tasks.
void record_submission(std::size_t count=1)
Record task submission(s).
virtual void reset()
Reset all metrics to their initial state.
void record_execution(std::uint64_t duration_ns, bool success)
Record task execution completion.
@ idle
Worker is idle, waiting for work.
@ failed
Execution failed.
Base snapshot structure containing common metric values.
std::uint64_t tasks_executed
Total tasks successfully executed.
std::uint64_t tasks_failed
Total tasks that failed during execution.
std::uint64_t total_idle_time_ns
Total idle time across all workers in nanoseconds.
std::uint64_t total_busy_time_ns
Total busy time across all workers in nanoseconds.
std::uint64_t tasks_submitted
Total tasks submitted to the pool.