summaryrefslogtreecommitdiffstats
path: root/src/health/health_silencers.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/health/health_silencers.h')
-rw-r--r--src/health/health_silencers.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/health/health_silencers.h b/src/health/health_silencers.h
new file mode 100644
index 000000000..fe80c2477
--- /dev/null
+++ b/src/health/health_silencers.h
@@ -0,0 +1,55 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#ifndef NETDATA_HEALTH_SILENCERS_H
+#define NETDATA_HEALTH_SILENCERS_H
+
+#include "health.h"
+
+typedef struct silencer {
+ char *alarms;
+ SIMPLE_PATTERN *alarms_pattern;
+
+ char *hosts;
+ SIMPLE_PATTERN *hosts_pattern;
+
+ char *contexts;
+ SIMPLE_PATTERN *contexts_pattern;
+
+ char *charts;
+ SIMPLE_PATTERN *charts_pattern;
+
+ struct silencer *next;
+} SILENCER;
+
+typedef enum silence_type {
+ STYPE_NONE,
+ STYPE_DISABLE_ALARMS,
+ STYPE_SILENCE_NOTIFICATIONS
+} SILENCE_TYPE;
+
+typedef struct silencers {
+ int all_alarms;
+ SILENCE_TYPE stype;
+ SILENCER *silencers;
+} SILENCERS;
+
+extern SILENCERS *silencers;
+
+SILENCER *create_silencer(void);
+int health_silencers_json_read_callback(JSON_ENTRY *e);
+void health_silencers_add(SILENCER *silencer);
+SILENCER * health_silencers_addparam(SILENCER *silencer, char *key, char *value);
+int health_initialize_global_silencers();
+
+void free_silencers(SILENCER *t);
+
+struct web_client;
+int web_client_api_request_v1_mgmt_health(RRDHOST *host, struct web_client *w, char *url);
+
+const char *health_silencers_filename(void);
+void health_set_silencers_filename(void);
+void health_silencers_init(void);
+SILENCE_TYPE health_silencers_check_silenced(RRDCALC *rc, const char *host);
+int health_silencers_update_disabled_silenced(RRDHOST *host, RRDCALC *rc);
+
+#endif //NETDATA_HEALTH_SILENCERS_H