Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
Loading...
Searching...
No Matches
kcenon::monitoring::aggregation_result Struct Reference

Result of time series aggregation. More...

#include <time_series.h>

Collaboration diagram for kcenon::monitoring::aggregation_result:
Collaboration graph

Public Member Functions

 aggregation_result ()
 
summary_data get_summary () const
 Get statistics for the aggregated data.
 
double get_average () const
 Get average value over the time period.
 
double get_rate () const
 Get rate of change (per second)
 

Public Attributes

std::vector< time_point_datapoints
 
std::chrono::system_clock::time_point query_start
 
std::chrono::system_clock::time_point query_end
 
size_t total_samples
 

Detailed Description

Result of time series aggregation.

Definition at line 151 of file time_series.h.

Constructor & Destructor Documentation

◆ aggregation_result()

kcenon::monitoring::aggregation_result::aggregation_result ( )
inline

Definition at line 157 of file time_series.h.

Member Function Documentation

◆ get_average()

double kcenon::monitoring::aggregation_result::get_average ( ) const
inline

Get average value over the time period.

Definition at line 173 of file time_series.h.

173 {
174 if (points.empty()) return 0.0;
175
176 double sum = 0.0;
177 uint64_t total_weight = 0;
178
179 for (const auto& point : points) {
180 sum += point.value * point.sample_count;
181 total_weight += point.sample_count;
182 }
183
184 return total_weight > 0 ? sum / total_weight : 0.0;
185 }
std::vector< time_point_data > points

References points.

◆ get_rate()

double kcenon::monitoring::aggregation_result::get_rate ( ) const
inline

Get rate of change (per second)

Definition at line 190 of file time_series.h.

190 {
191 if (points.size() < 2) return 0.0;
192
193 const auto& first = points.front();
194 const auto& last = points.back();
195
196 auto duration = std::chrono::duration_cast<std::chrono::seconds>(
197 last.timestamp - first.timestamp);
198
199 if (duration.count() <= 0) return 0.0;
200
201 return (last.value - first.value) / duration.count();
202 }

References points.

◆ get_summary()

summary_data kcenon::monitoring::aggregation_result::get_summary ( ) const
inline

Get statistics for the aggregated data.

Definition at line 162 of file time_series.h.

162 {
163 summary_data summary;
164 for (const auto& point : points) {
165 summary.add_sample(point.value);
166 }
167 return summary;
168 }
@ summary
Pre-calculated quantiles and count/sum.

References points, and kcenon::monitoring::summary.

Member Data Documentation

◆ points

std::vector<time_point_data> kcenon::monitoring::aggregation_result::points

◆ query_end

std::chrono::system_clock::time_point kcenon::monitoring::aggregation_result::query_end

Definition at line 154 of file time_series.h.

Referenced by kcenon::monitoring::time_series::query().

◆ query_start

std::chrono::system_clock::time_point kcenon::monitoring::aggregation_result::query_start

Definition at line 153 of file time_series.h.

Referenced by kcenon::monitoring::time_series::query().

◆ total_samples

size_t kcenon::monitoring::aggregation_result::total_samples

Definition at line 155 of file time_series.h.

Referenced by kcenon::monitoring::time_series::query().


The documentation for this struct was generated from the following file: