master
h 74 lines 1.83 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 #ifndef NETDATA_API_WEIGHTS_H
4 #define NETDATA_API_WEIGHTS_H 1
5
6 #include "query.h"
7
8 typedef enum {
9 WEIGHTS_METHOD_MC_KS2 = 1,
10 WEIGHTS_METHOD_MC_VOLUME = 2,
11 WEIGHTS_METHOD_ANOMALY_RATE = 3,
12 WEIGHTS_METHOD_VALUE = 4,
13 } WEIGHTS_METHOD;
14
15 typedef enum {
16 WEIGHTS_FORMAT_CHARTS = 1,
17 WEIGHTS_FORMAT_CONTEXTS = 2,
18 WEIGHTS_FORMAT_MULTINODE = 3,
19 WEIGHTS_FORMAT_MCP = 4,
20 } WEIGHTS_FORMAT;
21
22 extern int metric_correlations_version;
23
24 typedef bool (*weights_interrupt_callback_t)(void *data);
25
26 typedef struct query_weights_request {
27 size_t version;
28 RRDHOST *host;
29 const char *scope_nodes;
30 const char *scope_contexts;
31 const char *scope_instances;
32 const char *scope_labels;
33 const char *scope_dimensions;
34 const char *nodes;
35 const char *contexts;
36 const char *instances;
37 const char *dimensions;
38 const char *labels;
39 const char *alerts;
40
41 struct {
42 RRDR_GROUP_BY group_by;
43 char *group_by_label;
44 RRDR_GROUP_BY_FUNCTION aggregation;
45 } group_by;
46
47 WEIGHTS_METHOD method;
48 WEIGHTS_FORMAT format;
49 RRDR_TIME_GROUPING time_group_method;
50 const char *time_group_options;
51 time_t baseline_after;
52 time_t baseline_before;
53 time_t after;
54 time_t before;
55 size_t points;
56 RRDR_OPTIONS options;
57 size_t tier;
58 time_t timeout_ms;
59 size_t cardinality_limit;
60
61 weights_interrupt_callback_t interrupt_callback;
62 void *interrupt_callback_data;
63
64 nd_uuid_t *transaction;
65 } QUERY_WEIGHTS_REQUEST;
66
67 int web_api_v12_weights(BUFFER *wb, QUERY_WEIGHTS_REQUEST *qwr);
68
69 WEIGHTS_METHOD weights_string_to_method(const char *method);
70 void query_weights_worker_thread(void *arg);
71 const char *weights_method_to_string(WEIGHTS_METHOD method);
72 int mc_unittest(void);
73
74 #endif //NETDATA_API_WEIGHTS_H