Stability level: Beta
The metricfrequencyprocessor
is a metrics processor that helps reduce DPM by automatic tuning of metrics reporting
frequency which adjusts for metric's information volume.
For metricfrequencyprocessor
, there are three categories of metrics - constant, low information and regular. Constant
ones are self-explanatory. Low information ones are defined by heuristic - having no anomalous data points and having
small relative variation. All metrics not falling to above categories are regular and do not have their report frequency
tuned beyond maxReportFrequency
.
Metrics are categorised by their recent data points, so a category for a metric can change in time.
metricfrequencyprocessor
works by sifting out data points that would be reported earlier than according to their
category's frequency.
min_point_accumulation_time
- warm up time for processor. Processor won't sift any data point from a metric with no earlier data point older than this value.constant_metrics_report_frequency
- minimum time between reports of a constant metric.low_info_metrics_report_frequency
- minimum time between reports of a low info metric.max_report_frequency
- minimum time between reports of any metric.
iqr_anomaly_coefficient
- relative deviation from interquartile range which constitutes an anomaly.variation_iqr_threshold_coefficient
- variation to iqr quotient under which a metric is considered low info.
data_point_expiration_time
- how long a data point should be used for determining metrics category.data_point_cache_cleanup_interval
- how often expired data points are removed from memory.metric_cache_cleanup_interval
- how often no longer seen metrics are removed from memory.
processors:
metric_frequency:
min_point_accumulation_time: 15m
constant_metrics_report_frequency: 5m
low_info_metrics_report_frequency: 2m
max_report_frequency: 30s
data_point_expiration_time: 1h