|
Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
|
Generic time-series ring buffer base template. More...
#include <time_series_buffer.h>


Public Member Functions | |
| time_series_ring_buffer (size_t max_samples) | |
| Constructor with maximum sample count. | |
| time_series_ring_buffer (const time_series_ring_buffer &)=delete | |
| time_series_ring_buffer & | operator= (const time_series_ring_buffer &)=delete |
| time_series_ring_buffer (time_series_ring_buffer &&)=delete | |
| time_series_ring_buffer & | operator= (time_series_ring_buffer &&)=delete |
| void | add_sample (const Sample &sample) |
| template<typename Duration > | |
| std::vector< Sample > | get_samples (Duration duration) const |
| std::vector< Sample > | get_samples_since (std::chrono::system_clock::time_point since) const |
| std::vector< Sample > | get_all_samples () const |
| common::Result< Sample > | get_latest () const |
| size_t | size () const noexcept |
| bool | empty () const noexcept |
| size_t | capacity () const noexcept |
| void | clear () noexcept |
| size_t | memory_footprint () const noexcept |
Private Member Functions | |
| size_t | get_actual_index (size_t logical_index) const noexcept |
Private Attributes | |
| std::mutex | mutex_ |
| std::vector< Sample > | buffer_ |
| size_t | head_ = 0 |
| size_t | count_ = 0 |
| size_t | max_samples_ |
Generic time-series ring buffer base template.
This template provides the common ring buffer functionality shared by time_series_buffer<T> and load_average_history. It handles:
| Sample | The sample type (must have a 'timestamp' member of type std::chrono::system_clock::time_point) |
Definition at line 194 of file time_series_buffer.h.
|
inlineexplicit |
Constructor with maximum sample count.
| max_samples | Maximum number of samples to store |
| std::invalid_argument | if max_samples is zero |
Definition at line 215 of file time_series_buffer.h.
References kcenon::monitoring::detail::time_series_ring_buffer< Sample >::buffer_, and kcenon::monitoring::detail::time_series_ring_buffer< Sample >::max_samples_.
|
delete |
|
delete |
|
inline |
Definition at line 227 of file time_series_buffer.h.
References kcenon::monitoring::detail::time_series_ring_buffer< Sample >::buffer_, kcenon::monitoring::detail::time_series_ring_buffer< Sample >::count_, kcenon::monitoring::detail::time_series_ring_buffer< Sample >::head_, kcenon::monitoring::detail::time_series_ring_buffer< Sample >::max_samples_, and kcenon::monitoring::detail::time_series_ring_buffer< Sample >::mutex_.
|
inlinenoexcept |
Definition at line 305 of file time_series_buffer.h.
References kcenon::monitoring::detail::time_series_ring_buffer< Sample >::max_samples_.
|
inlinenoexcept |
|
inlinenoexcept |
Definition at line 300 of file time_series_buffer.h.
References kcenon::monitoring::detail::time_series_ring_buffer< Sample >::count_, and kcenon::monitoring::detail::time_series_ring_buffer< Sample >::mutex_.
|
inlineprivatenoexcept |
Definition at line 202 of file time_series_buffer.h.
References kcenon::monitoring::detail::time_series_ring_buffer< Sample >::count_, kcenon::monitoring::detail::time_series_ring_buffer< Sample >::head_, and kcenon::monitoring::detail::time_series_ring_buffer< Sample >::max_samples_.
Referenced by kcenon::monitoring::detail::time_series_ring_buffer< Sample >::get_all_samples(), and kcenon::monitoring::detail::time_series_ring_buffer< Sample >::get_samples_since().

|
inline |
Definition at line 266 of file time_series_buffer.h.
References kcenon::monitoring::detail::time_series_ring_buffer< Sample >::buffer_, kcenon::monitoring::detail::time_series_ring_buffer< Sample >::count_, kcenon::monitoring::detail::time_series_ring_buffer< Sample >::get_actual_index(), and kcenon::monitoring::detail::time_series_ring_buffer< Sample >::mutex_.

|
inline |
Definition at line 284 of file time_series_buffer.h.
References kcenon::monitoring::detail::time_series_ring_buffer< Sample >::buffer_, kcenon::monitoring::collection_failed, kcenon::monitoring::detail::time_series_ring_buffer< Sample >::count_, kcenon::monitoring::detail::time_series_ring_buffer< Sample >::head_, kcenon::monitoring::detail::time_series_ring_buffer< Sample >::max_samples_, and kcenon::monitoring::detail::time_series_ring_buffer< Sample >::mutex_.
|
inline |
Definition at line 239 of file time_series_buffer.h.
References kcenon::monitoring::detail::time_series_ring_buffer< Sample >::get_samples_since().

|
inline |
Definition at line 244 of file time_series_buffer.h.
References kcenon::monitoring::detail::time_series_ring_buffer< Sample >::buffer_, kcenon::monitoring::detail::time_series_ring_buffer< Sample >::count_, kcenon::monitoring::detail::time_series_ring_buffer< Sample >::get_actual_index(), and kcenon::monitoring::detail::time_series_ring_buffer< Sample >::mutex_.
Referenced by kcenon::monitoring::detail::time_series_ring_buffer< Sample >::get_samples().


|
inlinenoexcept |
Definition at line 313 of file time_series_buffer.h.
References kcenon::monitoring::detail::time_series_ring_buffer< Sample >::max_samples_.
|
delete |
|
delete |
|
inlinenoexcept |
Definition at line 295 of file time_series_buffer.h.
References kcenon::monitoring::detail::time_series_ring_buffer< Sample >::count_, and kcenon::monitoring::detail::time_series_ring_buffer< Sample >::mutex_.
|
private |
Definition at line 197 of file time_series_buffer.h.
Referenced by kcenon::monitoring::detail::time_series_ring_buffer< Sample >::add_sample(), kcenon::monitoring::detail::time_series_ring_buffer< Sample >::get_all_samples(), kcenon::monitoring::detail::time_series_ring_buffer< Sample >::get_latest(), kcenon::monitoring::detail::time_series_ring_buffer< Sample >::get_samples_since(), and kcenon::monitoring::detail::time_series_ring_buffer< Sample >::time_series_ring_buffer().
|
private |
Definition at line 199 of file time_series_buffer.h.
Referenced by kcenon::monitoring::detail::time_series_ring_buffer< Sample >::add_sample(), kcenon::monitoring::detail::time_series_ring_buffer< Sample >::clear(), kcenon::monitoring::detail::time_series_ring_buffer< Sample >::empty(), kcenon::monitoring::detail::time_series_ring_buffer< Sample >::get_actual_index(), kcenon::monitoring::detail::time_series_ring_buffer< Sample >::get_all_samples(), kcenon::monitoring::detail::time_series_ring_buffer< Sample >::get_latest(), kcenon::monitoring::detail::time_series_ring_buffer< Sample >::get_samples_since(), and kcenon::monitoring::detail::time_series_ring_buffer< Sample >::size().
|
private |
Definition at line 198 of file time_series_buffer.h.
Referenced by kcenon::monitoring::detail::time_series_ring_buffer< Sample >::add_sample(), kcenon::monitoring::detail::time_series_ring_buffer< Sample >::clear(), kcenon::monitoring::detail::time_series_ring_buffer< Sample >::get_actual_index(), and kcenon::monitoring::detail::time_series_ring_buffer< Sample >::get_latest().
|
private |
Definition at line 200 of file time_series_buffer.h.
Referenced by kcenon::monitoring::detail::time_series_ring_buffer< Sample >::add_sample(), kcenon::monitoring::detail::time_series_ring_buffer< Sample >::capacity(), kcenon::monitoring::detail::time_series_ring_buffer< Sample >::get_actual_index(), kcenon::monitoring::detail::time_series_ring_buffer< Sample >::get_latest(), kcenon::monitoring::detail::time_series_ring_buffer< Sample >::memory_footprint(), and kcenon::monitoring::detail::time_series_ring_buffer< Sample >::time_series_ring_buffer().
|
mutableprivate |
Definition at line 196 of file time_series_buffer.h.
Referenced by kcenon::monitoring::detail::time_series_ring_buffer< Sample >::add_sample(), kcenon::monitoring::detail::time_series_ring_buffer< Sample >::clear(), kcenon::monitoring::detail::time_series_ring_buffer< Sample >::empty(), kcenon::monitoring::detail::time_series_ring_buffer< Sample >::get_all_samples(), kcenon::monitoring::detail::time_series_ring_buffer< Sample >::get_latest(), kcenon::monitoring::detail::time_series_ring_buffer< Sample >::get_samples_since(), and kcenon::monitoring::detail::time_series_ring_buffer< Sample >::size().