|
Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
|
Thread-safe ring buffer for time-series data with statistics. More...
#include <time_series_buffer.h>

Public Member Functions | |
| time_series_buffer (const time_series_buffer_config &config={}) | |
| Constructor with configuration. | |
| time_series_buffer (const time_series_buffer &)=delete | |
| time_series_buffer & | operator= (const time_series_buffer &)=delete |
| time_series_buffer (time_series_buffer &&)=delete | |
| time_series_buffer & | operator= (time_series_buffer &&)=delete |
| void | add_sample (T value, std::chrono::system_clock::time_point timestamp=std::chrono::system_clock::now()) |
| Add a sample to the buffer. | |
| template<typename Duration > | |
| std::vector< time_series_sample< T > > | get_samples (Duration duration) const |
| Get samples within a duration from now. | |
| std::vector< time_series_sample< T > > | get_samples_since (std::chrono::system_clock::time_point since) const |
| Get samples since a specific timestamp. | |
| std::vector< time_series_sample< T > > | get_all_samples () const |
| Get all samples in chronological order. | |
| template<typename Duration > | |
| time_series_statistics | get_statistics (Duration duration) const |
| Get statistics for samples within a duration. | |
| time_series_statistics | get_statistics () const |
| Get statistics for all samples. | |
| common::Result< T > | get_latest () const |
| Get the latest sample value. | |
| common::Result< time_series_sample< T > > | get_latest_sample () const |
| Get the latest sample with timestamp. | |
| size_t | size () const noexcept |
| Get current number of samples. | |
| bool | empty () const noexcept |
| Check if buffer is empty. | |
| size_t | capacity () const noexcept |
| Get buffer capacity. | |
| void | clear () noexcept |
| Clear all samples. | |
| size_t | memory_footprint () const noexcept |
| Get memory footprint in bytes. | |
Static Private Member Functions | |
| static time_series_statistics | calculate_statistics (const std::vector< time_series_sample< T > > &samples) |
Private Attributes | |
| detail::time_series_ring_buffer< time_series_sample< T > > | buffer_ |
Thread-safe ring buffer for time-series data with statistics.
This class wraps detail::time_series_ring_buffer to provide a specialized interface for single-value time series with automatic statistics calculation.
| T | The type of values to store (must be numeric) |
Definition at line 331 of file time_series_buffer.h.
|
inlineexplicit |
Constructor with configuration.
| config | Time series buffer configuration options |
| std::invalid_argument | if configuration validation fails |
Definition at line 343 of file time_series_buffer.h.
|
delete |
|
delete |
|
inline |
Add a sample to the buffer.
| value | The value to add |
| timestamp | Optional timestamp (defaults to now) |
Definition at line 362 of file time_series_buffer.h.
References kcenon::monitoring::time_series_buffer< T >::buffer_.
|
inlinestaticprivate |
Definition at line 472 of file time_series_buffer.h.
References kcenon::monitoring::detail::calculate_basic_statistics(), kcenon::monitoring::time_series_statistics::max_value, kcenon::monitoring::time_series_statistics::min_value, and kcenon::monitoring::time_series_statistics::sample_count.
Referenced by kcenon::monitoring::time_series_buffer< T >::get_statistics(), and kcenon::monitoring::time_series_buffer< T >::get_statistics().


|
inlinenoexcept |
Get buffer capacity.
Definition at line 453 of file time_series_buffer.h.
References kcenon::monitoring::time_series_buffer< T >::buffer_.
|
inlinenoexcept |
Clear all samples.
Definition at line 460 of file time_series_buffer.h.
References kcenon::monitoring::time_series_buffer< T >::buffer_.
|
inlinenoexcept |
Check if buffer is empty.
Definition at line 446 of file time_series_buffer.h.
References kcenon::monitoring::time_series_buffer< T >::buffer_.
|
inline |
Get all samples in chronological order.
Definition at line 392 of file time_series_buffer.h.
References kcenon::monitoring::time_series_buffer< T >::buffer_.
Referenced by kcenon::monitoring::time_series_buffer< T >::get_statistics().

|
inline |
Get the latest sample value.
Definition at line 420 of file time_series_buffer.h.
References kcenon::monitoring::time_series_buffer< T >::buffer_.
|
inline |
Get the latest sample with timestamp.
Definition at line 432 of file time_series_buffer.h.
References kcenon::monitoring::time_series_buffer< T >::buffer_.
|
inline |
Get samples within a duration from now.
| duration | How far back to look |
Definition at line 374 of file time_series_buffer.h.
References kcenon::monitoring::time_series_buffer< T >::buffer_.
Referenced by kcenon::monitoring::time_series_buffer< T >::get_statistics().

|
inline |
Get samples since a specific timestamp.
| since | The timestamp to start from |
Definition at line 383 of file time_series_buffer.h.
References kcenon::monitoring::time_series_buffer< T >::buffer_.
|
inline |
Get statistics for all samples.
Definition at line 411 of file time_series_buffer.h.
References kcenon::monitoring::time_series_buffer< T >::calculate_statistics(), and kcenon::monitoring::time_series_buffer< T >::get_all_samples().

|
inline |
Get statistics for samples within a duration.
| duration | How far back to look |
Definition at line 402 of file time_series_buffer.h.
References kcenon::monitoring::time_series_buffer< T >::calculate_statistics(), and kcenon::monitoring::time_series_buffer< T >::get_samples().

|
inlinenoexcept |
Get memory footprint in bytes.
Definition at line 467 of file time_series_buffer.h.
References kcenon::monitoring::time_series_buffer< T >::buffer_.
|
delete |
|
delete |
|
inlinenoexcept |
Get current number of samples.
Definition at line 439 of file time_series_buffer.h.
References kcenon::monitoring::time_series_buffer< T >::buffer_.
|
private |
Definition at line 335 of file time_series_buffer.h.
Referenced by kcenon::monitoring::time_series_buffer< T >::add_sample(), kcenon::monitoring::time_series_buffer< T >::capacity(), kcenon::monitoring::time_series_buffer< T >::clear(), kcenon::monitoring::time_series_buffer< T >::empty(), kcenon::monitoring::time_series_buffer< T >::get_all_samples(), kcenon::monitoring::time_series_buffer< T >::get_latest(), kcenon::monitoring::time_series_buffer< T >::get_latest_sample(), kcenon::monitoring::time_series_buffer< T >::get_samples(), kcenon::monitoring::time_series_buffer< T >::get_samples_since(), kcenon::monitoring::time_series_buffer< T >::memory_footprint(), and kcenon::monitoring::time_series_buffer< T >::size().