122 std::chrono::nanoseconds duration,
123 std::chrono::nanoseconds wait_time,
145 std::size_t worker_id,
147 std::uint64_t duration_ns = 0);
Enhanced thread pool metrics with histograms and percentiles.
Lightweight metrics container shared between thread_pool and workers.
Centralized metrics service for thread pool metrics management.
void record_execution_with_wait_time(std::chrono::nanoseconds duration, std::chrono::nanoseconds wait_time, bool success)
Record task execution with wait time tracking.
void set_enhanced_metrics_enabled(bool enabled, std::size_t worker_count=0)
Enable or disable enhanced metrics collection.
std::shared_ptr< EnhancedThreadPoolMetrics > enhanced_metrics_
Enhanced metrics collector.
std::mutex init_mutex_
Mutex for thread-safe enhanced metrics initialization.
void reset()
Reset all metrics to their initial state.
void record_execution(std::uint64_t duration_ns, bool success)
Record task execution completion.
void record_enqueue(std::size_t count=1)
Record enqueue operation(s).
metrics_service(const metrics_service &)=delete
void record_enqueue_with_latency(std::chrono::nanoseconds latency, std::size_t count=1)
Record enqueue operation with latency measurement.
std::shared_ptr< ThreadPoolMetrics > basic_metrics_
Basic metrics collector.
void record_worker_state(std::size_t worker_id, bool busy, std::uint64_t duration_ns=0)
Update worker state for per-worker metrics.
metrics_service()
Default constructor.
const ThreadPoolMetrics & basic_metrics() const noexcept
Access basic metrics (read-only reference).
void update_worker_count(std::size_t count)
Update the worker count for enhanced metrics.
void record_submission(std::size_t count=1)
Record task submission(s).
~metrics_service()=default
Destructor.
bool is_enhanced_metrics_enabled() const
Check if enhanced metrics is enabled.
void record_queue_depth(std::size_t depth)
Record current queue depth.
void record_idle_time(std::uint64_t duration_ns)
Record idle time.
std::atomic< bool > enhanced_enabled_
Flag indicating if enhanced metrics collection is enabled.
std::shared_ptr< ThreadPoolMetrics > get_basic_metrics() const noexcept
Get the shared pointer to basic metrics.
void set_active_workers(std::size_t count)
Set the number of active workers.
metrics_service(metrics_service &&)=delete
EnhancedSnapshot enhanced_snapshot() const
Get enhanced metrics snapshot.
metrics_service & operator=(const metrics_service &)=delete
const EnhancedThreadPoolMetrics & enhanced_metrics() const
Access enhanced metrics (read-only reference).
metrics_service & operator=(metrics_service &&)=delete
Enhanced metrics snapshot with latency percentiles and throughput.
@ latency
Latency threshold exceeded.
Enhanced snapshot with latency percentiles and throughput.
Lightweight metrics container shared between thread_pool and workers.