master
h 97 lines 2.03 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 #ifndef NETDATA_API_V2_CONTEXTS_H
4 #define NETDATA_API_V2_CONTEXTS_H
5
6 #include "rrdcontext-internal.h"
7
8 typedef enum __attribute__ ((__packed__)) {
9 FTS_MATCHED_NONE = 0,
10 FTS_MATCHED_CONTEXT,
11 FTS_MATCHED_INSTANCE,
12 FTS_MATCHED_DIMENSION,
13 FTS_MATCHED_LABEL,
14 FTS_MATCHED_ALERT,
15 FTS_MATCHED_ALERT_INFO,
16 FTS_MATCHED_FAMILY,
17 FTS_MATCHED_TITLE,
18 FTS_MATCHED_UNITS,
19 } FTS_MATCH;
20
21 typedef struct full_text_search_index {
22 size_t searches;
23 size_t string_searches;
24 size_t char_searches;
25 } FTS_INDEX;
26
27 struct contexts_v2_node {
28 size_t ni;
29 size_t contexts_matched;
30 RRDHOST *host;
31 };
32
33 struct rrdcontext_to_json_v2_data {
34 time_t now;
35
36 BUFFER *wb;
37 struct api_v2_contexts_request *request;
38
39 CONTEXTS_V2_MODE mode;
40 CONTEXTS_OPTIONS options;
41 struct query_versions versions;
42
43 struct {
44 SIMPLE_PATTERN *scope_pattern;
45 SIMPLE_PATTERN *pattern;
46 size_t ni;
47 DICTIONARY *dict; // the result set
48 } nodes;
49
50 struct {
51 SIMPLE_PATTERN *scope_pattern;
52 SIMPLE_PATTERN *pattern;
53 size_t ci;
54 DICTIONARY *dict; // the result set
55 } contexts;
56
57 struct {
58 SIMPLE_PATTERN *alert_name_pattern;
59 time_t alarm_id_filter;
60
61 size_t ati;
62
63 DICTIONARY *summary;
64 DICTIONARY *alert_instances;
65
66 DICTIONARY *by_type;
67 DICTIONARY *by_component;
68 DICTIONARY *by_classification;
69 DICTIONARY *by_recipient;
70 DICTIONARY *by_module;
71 } alerts;
72
73 struct {
74 char host_node_id_str[UUID_STR_LEN];
75 SIMPLE_PATTERN *pattern;
76 FTS_INDEX fts;
77 } q;
78
79 struct {
80 DICTIONARY *dict; // the result set
81 } functions;
82
83 struct {
84 bool enabled;
85 bool relative;
86 time_t after;
87 time_t before;
88 } window;
89
90 struct query_timings timings;
91 };
92
93 void agent_capabilities_to_json(BUFFER *wb, RRDHOST *host, const char *key);
94
95 #include "api_v2_contexts_alerts.h"
96
97 #endif //NETDATA_API_V2_CONTEXTS_H