summaryrefslogtreecommitdiffstats
path: root/ml/ml.cc
diff options
context:
space:
mode:
authorvkalintiris <vasilis@netdata.cloud>2023-08-24 20:48:19 +0300
committerGitHub <noreply@github.com>2023-08-24 20:48:19 +0300
commit0717c779c3c0b21b2d3b6a87de5326affede8f34 (patch)
tree0856e746fcf4c9b18390a02b7b92e4dde15a0863 /ml/ml.cc
parent3c6c682276d11579a0c90def0a97e6f4a17a8360 (diff)
Add a chart that groups anomaly rate by chart type. (#15856)
* Add a chart that groups anomaly rate by chart type. * Use type_anomaly_rate for context.
Diffstat (limited to 'ml/ml.cc')
-rw-r--r--ml/ml.cc24
1 files changed, 24 insertions, 0 deletions
diff --git a/ml/ml.cc b/ml/ml.cc
index 58956b2c6f..867ffee7b4 100644
--- a/ml/ml.cc
+++ b/ml/ml.cc
@@ -1082,6 +1082,21 @@ ml_host_detect_once(ml_host_t *host)
host->mls.num_anomalous_dimensions += chart_mls.num_anomalous_dimensions;
host->mls.num_normal_dimensions += chart_mls.num_normal_dimensions;
+
+ STRING *key = rs->parts.type;
+ auto &um = host->type_anomaly_rate;
+ auto it = um.find(key);
+ if (it == um.end()) {
+ um[key] = ml_type_anomaly_rate_t {
+ .rd = NULL,
+ .normal_dimensions = 0,
+ .anomalous_dimensions = 0
+ };
+ it = um.find(key);
+ }
+
+ it->second.anomalous_dimensions += chart_mls.num_anomalous_dimensions;
+ it->second.normal_dimensions += chart_mls.num_normal_dimensions;
}
rrdset_foreach_done(rsp);
@@ -1095,6 +1110,15 @@ ml_host_detect_once(ml_host_t *host)
netdata_mutex_unlock(&host->mutex);
} else {
host->host_anomaly_rate = 0.0;
+
+ auto &um = host->type_anomaly_rate;
+ for (auto &entry: um) {
+ entry.second = ml_type_anomaly_rate_t {
+ .rd = NULL,
+ .normal_dimensions = 0,
+ .anomalous_dimensions = 0
+ };
+ }
}
worker_is_busy(WORKER_JOB_DETECTION_DIM_CHART);