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

Configuration for metric aggregation. More...

#include <aggregation_processor.h>

Collaboration diagram for kcenon::monitoring::aggregation_rule:
Collaboration graph

Public Member Functions

common::VoidResult validate () const
 Validate the aggregation rule.
 

Public Attributes

std::string source_metric
 Source metric name.
 
std::string target_metric_prefix
 Prefix for aggregated metrics.
 
std::chrono::milliseconds aggregation_interval {60000}
 Aggregation interval.
 
std::vector< double > percentiles = {0.5, 0.9, 0.95, 0.99}
 Percentiles to compute.
 
bool compute_rate = false
 Compute rate of change.
 
bool detect_outliers = true
 Enable outlier detection.
 
double outlier_threshold = 3.0
 Outlier detection threshold.
 

Detailed Description

Configuration for metric aggregation.

Definition at line 35 of file aggregation_processor.h.

Member Function Documentation

◆ validate()

common::VoidResult kcenon::monitoring::aggregation_rule::validate ( ) const
inline

Validate the aggregation rule.

Definition at line 47 of file aggregation_processor.h.

47 {
48 if (source_metric.empty()) {
49 return common::VoidResult::err(error_info(monitoring_error_code::invalid_configuration,
50 "Source metric name cannot be empty").to_common_error());
51 }
52 if (target_metric_prefix.empty()) {
53 return common::VoidResult::err(error_info(monitoring_error_code::invalid_configuration,
54 "Target metric prefix cannot be empty").to_common_error());
55 }
56 if (aggregation_interval.count() <= 0) {
57 return common::VoidResult::err(error_info(monitoring_error_code::invalid_configuration,
58 "Aggregation interval must be positive").to_common_error());
59 }
60 return common::ok();
61 }
std::chrono::milliseconds aggregation_interval
Aggregation interval.
std::string target_metric_prefix
Prefix for aggregated metrics.
std::string source_metric
Source metric name.

References aggregation_interval, kcenon::monitoring::invalid_configuration, source_metric, and target_metric_prefix.

Referenced by kcenon::monitoring::aggregation_processor::add_aggregation_rule(), and TEST_F().

Here is the caller graph for this function:

Member Data Documentation

◆ aggregation_interval

std::chrono::milliseconds kcenon::monitoring::aggregation_rule::aggregation_interval {60000}

Aggregation interval.

Definition at line 38 of file aggregation_processor.h.

38{60000};

Referenced by kcenon::monitoring::create_standard_aggregation_rules(), TEST_F(), TEST_F(), TEST_F(), and validate().

◆ compute_rate

bool kcenon::monitoring::aggregation_rule::compute_rate = false

Compute rate of change.

Definition at line 40 of file aggregation_processor.h.

Referenced by kcenon::monitoring::create_standard_aggregation_rules(), and TEST_F().

◆ detect_outliers

bool kcenon::monitoring::aggregation_rule::detect_outliers = true

◆ outlier_threshold

double kcenon::monitoring::aggregation_rule::outlier_threshold = 3.0

◆ percentiles

std::vector<double> kcenon::monitoring::aggregation_rule::percentiles = {0.5, 0.9, 0.95, 0.99}

◆ source_metric

std::string kcenon::monitoring::aggregation_rule::source_metric

◆ target_metric_prefix

std::string kcenon::monitoring::aggregation_rule::target_metric_prefix

Prefix for aggregated metrics.

Definition at line 37 of file aggregation_processor.h.

Referenced by kcenon::monitoring::create_standard_aggregation_rules(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and validate().


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