summaryrefslogtreecommitdiffstats
path: root/ml/ml.h
diff options
context:
space:
mode:
authorvkalintiris <vasilis@netdata.cloud>2023-01-04 14:51:25 +0200
committerGitHub <noreply@github.com>2023-01-04 14:51:25 +0200
commit78359cd375d0b2c285741e6f934a681d0a0c3c15 (patch)
tree2d5264325510b663d9e87ca62a38fad187e3a713 /ml/ml.h
parentdf379e45fbaddf825f1f7972a75ae3f3daf80097 (diff)
Refactor ML code and add support for multiple KMeans models (#14198)
* Add profile.plugin Creates the specified number of charts/dimensions, and supports backfilling with pseudo-historical data. * Bump * Remove wrongly merged line. * Use the number of models specified from the config section. * Add option to consult all ML models. * Remove profiling option consuming all models. * Add underscore after chart name prefix. * prediction -> dimensions chart * reorder funcs * Split charts across types with correct priority * Ignore training request when chart is under replication. * Track global number of models consulted. * Cleanup config. * initial readme updates * fix readme * readme * Fix function definition when ML is disabled. * Add dummy ml_chart_update_{begin,end} * Remove profile_plugin * Define chart priorities under collectors/all.h * s/curr_t/current_time/ * Use libnetdata's lock/thread wrappers. * Fix autotools & cmake builds. * Delete ML dimensions & charts. * Let users of buffer preprocessing to handle memory. * Add separate API calls to start/stop ML threads. Co-authored-by: Andrew Maguire <andrewm4894@gmail.com>
Diffstat (limited to 'ml/ml.h')
-rw-r--r--ml/ml.h28
1 files changed, 14 insertions, 14 deletions
diff --git a/ml/ml.h b/ml/ml.h
index 8e62c4988e..790f881841 100644
--- a/ml/ml.h
+++ b/ml/ml.h
@@ -14,35 +14,35 @@ extern "C" {
// the anomaly rate dimension, whenever its backing dimension is freed.
void rrddim_free(RRDSET *st, RRDDIM *rd);
-typedef void* ml_host_t;
-typedef void* ml_dimension_t;
-
bool ml_capable();
bool ml_enabled(RRDHOST *RH);
void ml_init(void);
-void ml_new_host(RRDHOST *RH);
-void ml_delete_host(RRDHOST *RH);
+void ml_host_new(RRDHOST *RH);
+void ml_host_delete(RRDHOST *RH);
+
+void ml_chart_new(RRDSET *RS);
+void ml_chart_delete(RRDSET *RS);
+
+void ml_dimension_new(RRDDIM *RD);
+void ml_dimension_delete(RRDDIM *RD);
+
+void ml_start_anomaly_detection_threads(RRDHOST *RH);
+void ml_stop_anomaly_detection_threads(RRDHOST *RH);
char *ml_get_host_info(RRDHOST *RH);
char *ml_get_host_runtime_info(RRDHOST *RH);
char *ml_get_host_models(RRDHOST *RH);
-void ml_new_dimension(RRDDIM *RD);
-void ml_delete_dimension(RRDDIM *RD);
+void ml_chart_update_begin(RRDSET *RS);
+void ml_chart_update_end(RRDSET *RS);
-bool ml_is_anomalous(RRDDIM *RD, double value, bool exists);
+bool ml_is_anomalous(RRDDIM *RD, time_t curr_t, double value, bool exists);
bool ml_streaming_enabled();
-#define ML_ANOMALY_RATES_CHART_ID "anomaly_detection.anomaly_rates"
-
-#if defined(ENABLE_ML_TESTS)
-int test_ml(int argc, char *argv[]);
-#endif
-
#ifdef __cplusplus
};
#endif