diff options
author | vkalintiris <vasilis@netdata.cloud> | 2023-03-21 18:31:56 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-21 18:31:56 +0200 |
commit | 5321ca8d1ef8d974a6a2b2128ca8804de6acb693 (patch) | |
tree | 05846664d6fdb9ba33845e9081a90dc5d7e60e26 /daemon | |
parent | cbdf236f0e62655a468fe07e2f3c00037bff327c (diff) |
Revert "Use static thread-pool for training. (#14702)" (#14782)
This reverts commit 5046e034212c008557dd014196b6f6204eda24b2.
Will re-apply once we investigate an issue that occurs during
the shutdown of the agent.
Diffstat (limited to 'daemon')
-rw-r--r-- | daemon/global_statistics.c | 28 | ||||
-rw-r--r-- | daemon/main.c | 16 | ||||
-rw-r--r-- | daemon/main.h | 20 |
3 files changed, 47 insertions, 17 deletions
diff --git a/daemon/global_statistics.c b/daemon/global_statistics.c index ee68bebd15..0dc3ee6452 100644 --- a/daemon/global_statistics.c +++ b/daemon/global_statistics.c @@ -827,7 +827,33 @@ static void global_statistics_charts(void) { rrdset_done(st_points_stored); } - ml_update_global_statistics_charts(gs.ml_models_consulted); + { + static RRDSET *st = NULL; + static RRDDIM *rd = NULL; + + if (unlikely(!st)) { + st = rrdset_create_localhost( + "netdata" // type + , "ml_models_consulted" // id + , NULL // name + , NETDATA_ML_CHART_FAMILY // family + , NULL // context + , "KMeans models used for prediction" // title + , "models" // units + , NETDATA_ML_PLUGIN // plugin + , NETDATA_ML_MODULE_DETECTION // module + , NETDATA_ML_CHART_PRIO_MACHINE_LEARNING_STATUS // priority + , localhost->rrd_update_every // update_every + , RRDSET_TYPE_AREA // chart_type + ); + + rd = rrddim_add(st, "num_models_consulted", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL); + } + + rrddim_set_by_pointer(st, rd, (collected_number) gs.ml_models_consulted); + + rrdset_done(st); + } } // ---------------------------------------------------------------------------- diff --git a/daemon/main.c b/daemon/main.c index 3a3b70782f..85d2996ef9 100644 --- a/daemon/main.c +++ b/daemon/main.c @@ -148,6 +148,10 @@ static void service_to_buffer(BUFFER *wb, SERVICE_TYPE service) { buffer_strcat(wb, "MAINTENANCE "); if(service & SERVICE_COLLECTORS) buffer_strcat(wb, "COLLECTORS "); + if(service & SERVICE_ML_TRAINING) + buffer_strcat(wb, "ML_TRAINING "); + if(service & SERVICE_ML_PREDICTION) + buffer_strcat(wb, "ML_PREDICTION "); if(service & SERVICE_REPLICATION) buffer_strcat(wb, "REPLICATION "); if(service & ABILITY_DATA_QUERIES) @@ -336,10 +340,6 @@ void netdata_cleanup_and_exit(int ret) { } #endif - delta_shutdown_time("disable ML detection and training threads"); - - ml_fini(); - delta_shutdown_time("disable maintenance, new queries, new web requests, new streaming connections and aclk"); service_signal_exit( @@ -351,11 +351,12 @@ void netdata_cleanup_and_exit(int ret) { | SERVICE_ACLKSYNC ); - delta_shutdown_time("stop replication, exporters, health and web servers threads"); + delta_shutdown_time("stop replication, exporters, ML training, health and web servers threads"); timeout = !service_wait_exit( SERVICE_REPLICATION | SERVICE_EXPORTERS + | SERVICE_ML_TRAINING | SERVICE_HEALTH | SERVICE_WEB_SERVER , 3 * USEC_PER_SEC); @@ -367,10 +368,11 @@ void netdata_cleanup_and_exit(int ret) { | SERVICE_STREAMING , 3 * USEC_PER_SEC); - delta_shutdown_time("stop context thread"); + delta_shutdown_time("stop ML prediction and context threads"); timeout = !service_wait_exit( - SERVICE_CONTEXT + SERVICE_ML_PREDICTION + | SERVICE_CONTEXT , 3 * USEC_PER_SEC); delta_shutdown_time("stop maintenance thread"); diff --git a/daemon/main.h b/daemon/main.h index 3e32c5ad6d..7e659e939a 100644 --- a/daemon/main.h +++ b/daemon/main.h @@ -33,15 +33,17 @@ typedef enum { ABILITY_STREAMING_CONNECTIONS = (1 << 2), SERVICE_MAINTENANCE = (1 << 3), SERVICE_COLLECTORS = (1 << 4), - SERVICE_REPLICATION = (1 << 5), - SERVICE_WEB_SERVER = (1 << 6), - SERVICE_ACLK = (1 << 7), - SERVICE_HEALTH = (1 << 8), - SERVICE_STREAMING = (1 << 9), - SERVICE_CONTEXT = (1 << 10), - SERVICE_ANALYTICS = (1 << 11), - SERVICE_EXPORTERS = (1 << 12), - SERVICE_ACLKSYNC = (1 << 13) + SERVICE_ML_TRAINING = (1 << 5), + SERVICE_ML_PREDICTION = (1 << 6), + SERVICE_REPLICATION = (1 << 7), + SERVICE_WEB_SERVER = (1 << 8), + SERVICE_ACLK = (1 << 9), + SERVICE_HEALTH = (1 << 10), + SERVICE_STREAMING = (1 << 11), + SERVICE_CONTEXT = (1 << 12), + SERVICE_ANALYTICS = (1 << 13), + SERVICE_EXPORTERS = (1 << 14), + SERVICE_ACLKSYNC = (1 << 15) } SERVICE_TYPE; typedef enum { |