master
h 56 lines 1.55 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 #ifndef ML_WORKER_H
4 #define ML_WORKER_H
5
6 #include "ml_queue.h"
7
8 typedef struct {
9 nd_uuid_t metric_uuid;
10 ml_kmeans_inlined_t inlined_kmeans;
11 } ml_model_info_t;
12
13 typedef struct {
14 size_t id;
15 ND_THREAD *nd_thread;
16 netdata_mutex_t nd_mutex;
17
18 ml_queue_t *queue;
19 ml_queue_stats_t queue_stats;
20
21 calculated_number_t *training_cns;
22 calculated_number_t *scratch_training_cns;
23 std::vector<DSample> training_samples;
24
25 std::vector<ml_model_info_t> pending_model_info;
26
27 // Reusable buffers for streaming kmeans models
28 BUFFER *stream_payload_buffer;
29 BUFFER *stream_wb_buffer;
30
31 RRDSET *queue_stats_rs;
32 RRDDIM *queue_stats_num_create_new_model_requests_rd;
33 RRDDIM *queue_stats_num_add_existing_model_requests_rd;
34 RRDDIM *queue_stats_num_create_new_model_requests_completed_rd;
35 RRDDIM *queue_stats_num_add_existing_model_requests_completed_rd;
36
37 RRDSET *queue_size_rs;
38 RRDDIM *queue_size_rd;
39
40 RRDSET *training_time_stats_rs;
41 RRDDIM *training_time_stats_allotted_rd;
42 RRDDIM *training_time_stats_consumed_rd;
43 RRDDIM *training_time_stats_remaining_rd;
44
45 RRDSET *training_results_rs;
46 RRDDIM *training_results_ok_rd;
47 RRDDIM *training_results_invalid_query_time_range_rd;
48 RRDDIM *training_results_not_enough_collected_values_rd;
49 RRDDIM *training_results_null_acquired_dimension_rd;
50 RRDDIM *training_results_chart_under_replication_rd;
51
52 size_t num_db_transactions;
53 size_t num_models_to_prune;
54 } ml_worker_t;
55
56 #endif /* ML_WORKER_H */