@cryptotaxi247 / netdata-1 / commits / f4a44dfaa

external plugins: respect env NETDATA_LOG_SEVERITY_LEVEL (#16089)

* func to set global log sev level for ext plugins * apps: set log sev level * cgroup-network: set log sev level * cups: set log sev level * debugfs: set log sev level * freeipmi: set log sev level * nfacct: set log sev level * perf: set log sev level * slabinfo: set log sev level * xenstat: set log sev level * cgroup-name.sh: handle log sev level * alarm-notify.sh: handle log sev level * systemd-journal: set log sev e level * ebpf.plugin: set log sev level * ioping: handle log sev level * cgroup-network-helper.sh: handle log sev level * fix for cgroup-network-helper.sh

Ilya Mashchenko committed Oct 3, 2023 at 11:26 UTC f4a44dfaa5cd302c852fffc3d3397475eb885de6
17 files changed +126 -16
collectors/apps.plugin/apps_plugin.c
+2
@@ -5549,6 +5549,8 @@ int main(int argc, char **argv) {
5549 error_log_errors_per_period = 100;
5550 error_log_throttle_period = 3600;
5551
5552 + log_set_global_severity_for_external_plugins();
5553 +
5554 bool send_resource_usage = true;
5555 {
5556 const char *s = getenv("NETDATA_INTERNALS_MONITORING");
collectors/cgroups.plugin/cgroup-name.sh
+22 -4
@@ -16,6 +16,21 @@ export LC_ALL=C
16
17 PROGRAM_NAME="$(basename "${0}")"
18
19 +LOG_LEVEL_ERR=1
20 +LOG_LEVEL_WARN=2
21 +LOG_LEVEL_INFO=3
22 +LOG_LEVEL="$LOG_LEVEL_INFO"
23 +
24 +set_log_severity_level() {
25 + case ${NETDATA_LOG_SEVERITY_LEVEL,,} in
26 + "info") LOG_LEVEL="$LOG_LEVEL_INFO";;
27 + "warn" | "warning") LOG_LEVEL="$LOG_LEVEL_WARN";;
28 + "err" | "error") LOG_LEVEL="$LOG_LEVEL_ERR";;
29 + esac
30 +}
31 +
32 +set_log_severity_level
33 +
34 logdate() {
35 date "+%Y-%m-%d %H:%M:%S"
36 }
@@ -28,18 +43,21 @@ log() {
43
44 }
45
46 +info() {
47 + [[ -n "$LOG_LEVEL" && "$LOG_LEVEL_INFO" -gt "$LOG_LEVEL" ]] && return
48 + log INFO "${@}"
49 +}
50 +
51 warning() {
52 + [[ -n "$LOG_LEVEL" && "$LOG_LEVEL_WARN" -gt "$LOG_LEVEL" ]] && return
53 log WARNING "${@}"
54 }
55
56 error() {
57 + [[ -n "$LOG_LEVEL" && "$LOG_LEVEL_ERR" -gt "$LOG_LEVEL" ]] && return
58 log ERROR "${@}"
59 }
60
39 -info() {
40 - log INFO "${@}"
41 -}
42 -
61 fatal() {
62 log FATAL "${@}"
63 exit 1
collectors/cgroups.plugin/cgroup-network-helper.sh
+22 -4
@@ -31,6 +31,21 @@ export LC_ALL=C
31
32 PROGRAM_NAME="$(basename "${0}")"
33
34 +LOG_LEVEL_ERR=1
35 +LOG_LEVEL_WARN=2
36 +LOG_LEVEL_INFO=3
37 +LOG_LEVEL="$LOG_LEVEL_INFO"
38 +
39 +set_log_severity_level() {
40 + case ${NETDATA_LOG_SEVERITY_LEVEL,,} in
41 + "info") LOG_LEVEL="$LOG_LEVEL_INFO";;
42 + "warn" | "warning") LOG_LEVEL="$LOG_LEVEL_WARN";;
43 + "err" | "error") LOG_LEVEL="$LOG_LEVEL_ERR";;
44 + esac
45 +}
46 +
47 +set_log_severity_level
48 +
49 logdate() {
50 date "+%Y-%m-%d %H:%M:%S"
51 }
@@ -43,18 +58,21 @@ log() {
58
59 }
60
61 +info() {
62 + [[ -n "$LOG_LEVEL" && "$LOG_LEVEL_INFO" -gt "$LOG_LEVEL" ]] && return
63 + log INFO "${@}"
64 +}
65 +
66 warning() {
67 + [[ -n "$LOG_LEVEL" && "$LOG_LEVEL_WARN" -gt "$LOG_LEVEL" ]] && return
68 log WARNING "${@}"
69 }
70
71 error() {
72 + [[ -n "$LOG_LEVEL" && "$LOG_LEVEL_ERR" -gt "$LOG_LEVEL" ]] && return
73 log ERROR "${@}"
74 }
75
54 -info() {
55 - log INFO "${@}"
56 -}
57 -
76 fatal() {
77 log FATAL "${@}"
78 exit 1
collectors/cgroups.plugin/cgroup-network.c
+8
@@ -11,9 +11,11 @@
11 #endif
12
13 char environment_variable2[FILENAME_MAX + 50] = "";
14 +char environment_variable3[FILENAME_MAX + 50] = "";
15 char *environment[] = {
16 "PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin",
17 environment_variable2,
18 + environment_variable3,
19 NULL
20 };
21
@@ -671,6 +673,10 @@ int main(int argc, char **argv) {
673 // the first environment variable is a fixed PATH=
674 snprintfz(environment_variable2, sizeof(environment_variable2) - 1, "NETDATA_HOST_PREFIX=%s", netdata_configured_host_prefix);
675
676 + char *s = getenv("NETDATA_LOG_SEVERITY_LEVEL");
677 + if (s)
678 + snprintfz(environment_variable3, sizeof(environment_variable3) - 1, "NETDATA_LOG_SEVERITY_LEVEL=%s", s);
679 +
680 // ------------------------------------------------------------------------
681
682 if(argc == 2 && (!strcmp(argv[1], "version") || !strcmp(argv[1], "-version") || !strcmp(argv[1], "--version") || !strcmp(argv[1], "-v") || !strcmp(argv[1], "-V"))) {
@@ -680,6 +686,8 @@ int main(int argc, char **argv) {
686
687 if(argc != 3)
688 usage();
689 +
690 + log_set_global_severity_for_external_plugins();
691
692 int arg = 1;
693 int helper = 1;
collectors/cups.plugin/cups_plugin.c
+2
@@ -241,6 +241,8 @@ int main(int argc, char **argv) {
241 error_log_errors_per_period = 100;
242 error_log_throttle_period = 3600;
243
244 + log_set_global_severity_for_external_plugins();
245 +
246 parse_command_line(argc, argv);
247
248 errno = 0;
collectors/debugfs.plugin/debugfs_plugin.c
+2
@@ -168,6 +168,8 @@ int main(int argc, char **argv)
168 // disable syslog for debugfs.plugin
169 error_log_syslog = 0;
170
171 + log_set_global_severity_for_external_plugins();
172 +
173 netdata_configured_host_prefix = getenv("NETDATA_HOST_PREFIX");
174 if (verify_netdata_host_prefix() == -1)
175 exit(1);
collectors/ebpf.plugin/ebpf.c
+3
@@ -4062,6 +4062,9 @@ static void ebpf_manage_pid(pid_t pid)
4062 int main(int argc, char **argv)
4063 {
4064 stderror = stderr;
4065 +
4066 + log_set_global_severity_for_external_plugins();
4067 +
4068 clocks_init();
4069 main_thread_id = gettid();
4070
collectors/freeipmi.plugin/freeipmi_plugin.c
+2
@@ -1450,6 +1450,8 @@ int main (int argc, char **argv) {
1450 error_log_errors_per_period = 100;
1451 error_log_throttle_period = 3600;
1452
1453 + log_set_global_severity_for_external_plugins();
1454 +
1455 // initialize the threads
1456 netdata_threads_init_for_external_plugins(0); // set the default threads stack size here
1457
collectors/ioping.plugin/ioping.plugin.in
+22 -4
@@ -96,6 +96,21 @@ fi
96
97 PROGRAM_NAME="$(basename "${0}")"
98
99 +LOG_LEVEL_ERR=1
100 +LOG_LEVEL_WARN=2
101 +LOG_LEVEL_INFO=3
102 +LOG_LEVEL="$LOG_LEVEL_INFO"
103 +
104 +set_log_severity_level() {
105 + case ${NETDATA_LOG_SEVERITY_LEVEL,,} in
106 + "info") LOG_LEVEL="$LOG_LEVEL_INFO";;
107 + "warn" | "warning") LOG_LEVEL="$LOG_LEVEL_WARN";;
108 + "err" | "error") LOG_LEVEL="$LOG_LEVEL_ERR";;
109 + esac
110 +}
111 +
112 +set_log_severity_level
113 +
114 logdate() {
115 date "+%Y-%m-%d %H:%M:%S"
116 }
@@ -108,18 +123,21 @@ log() {
123
124 }
125
126 +info() {
127 + [[ -n "$LOG_LEVEL" && "$LOG_LEVEL_INFO" -gt "$LOG_LEVEL" ]] && return
128 + log INFO "${@}"
129 +}
130 +
131 warning() {
132 + [[ -n "$LOG_LEVEL" && "$LOG_LEVEL_WARN" -gt "$LOG_LEVEL" ]] && return
133 log WARNING "${@}"
134 }
135
136 error() {
137 + [[ -n "$LOG_LEVEL" && "$LOG_LEVEL_ERR" -gt "$LOG_LEVEL" ]] && return
138 log ERROR "${@}"
139 }
140
119 -info() {
120 - log INFO "${@}"
121 -}
122 -
141 fatal() {
142 log FATAL "${@}"
143 echo "DISABLE"
collectors/nfacct.plugin/plugin_nfacct.c
+2
@@ -762,6 +762,8 @@ int main(int argc, char **argv) {
762 error_log_errors_per_period = 100;
763 error_log_throttle_period = 3600;
764
765 + log_set_global_severity_for_external_plugins();
766 +
767 // ------------------------------------------------------------------------
768 // parse command line parameters
769
collectors/perf.plugin/perf_plugin.c
+2
@@ -1298,6 +1298,8 @@ int main(int argc, char **argv) {
1298 error_log_errors_per_period = 100;
1299 error_log_throttle_period = 3600;
1300
1301 + log_set_global_severity_for_external_plugins();
1302 +
1303 parse_command_line(argc, argv);
1304
1305 errno = 0;
collectors/slabinfo.plugin/slabinfo.c
+2
@@ -343,6 +343,8 @@ int main(int argc, char **argv) {
343 program_version = "0.1";
344 error_log_syslog = 0;
345
346 + log_set_global_severity_for_external_plugins();
347 +
348 int update_every = 1, i, n, freq = 0;
349
350 for (i = 1; i < argc; i++) {
collectors/systemd-journal.plugin/systemd-journal.c
+2
@@ -2514,6 +2514,8 @@ int main(int argc __maybe_unused, char **argv __maybe_unused) {
2514 error_log_errors_per_period = 100;
2515 error_log_throttle_period = 3600;
2516
2517 + log_set_global_severity_for_external_plugins();
2518 +
2519 netdata_configured_host_prefix = getenv("NETDATA_HOST_PREFIX");
2520 if(verify_netdata_host_prefix() == -1) exit(1);
2521
collectors/xenstat.plugin/xenstat_plugin.c
+2
@@ -935,6 +935,8 @@ int main(int argc, char **argv) {
935 error_log_errors_per_period = 100;
936 error_log_throttle_period = 3600;
937
938 + log_set_global_severity_for_external_plugins();
939 +
940 // ------------------------------------------------------------------------
941 // parse command line parameters
942
health/notifications/alarm-notify.sh.in
+22 -4
@@ -81,6 +81,21 @@ export LC_ALL=C
81
82 PROGRAM_NAME="$(basename "${0}")"
83
84 +LOG_LEVEL_ERR=1
85 +LOG_LEVEL_WARN=2
86 +LOG_LEVEL_INFO=3
87 +LOG_LEVEL="$LOG_LEVEL_INFO"
88 +
89 +set_log_severity_level() {
90 + case ${NETDATA_LOG_SEVERITY_LEVEL,,} in
91 + "info") LOG_LEVEL="$LOG_LEVEL_INFO";;
92 + "warn" | "warning") LOG_LEVEL="$LOG_LEVEL_WARN";;
93 + "err" | "error") LOG_LEVEL="$LOG_LEVEL_ERR";;
94 + esac
95 +}
96 +
97 +set_log_severity_level
98 +
99 logdate() {
100 date "+%Y-%m-%d %H:%M:%S"
101 }
@@ -93,18 +108,21 @@ log() {
108
109 }
110
111 +info() {
112 + [[ -n "$LOG_LEVEL" && "$LOG_LEVEL_INFO" -gt "$LOG_LEVEL" ]] && return
113 + log INFO "${@}"
114 +}
115 +
116 warning() {
117 + [[ -n "$LOG_LEVEL" && "$LOG_LEVEL_WARN" -gt "$LOG_LEVEL" ]] && return
118 log WARNING "${@}"
119 }
120
121 error() {
122 + [[ -n "$LOG_LEVEL" && "$LOG_LEVEL_ERR" -gt "$LOG_LEVEL" ]] && return
123 log ERROR "${@}"
124 }
125
104 -info() {
105 - log INFO "${@}"
106 -}
107 -
126 fatal() {
127 log FATAL "${@}"
128 exit 1
libnetdata/log/log.c
+8
@@ -1163,3 +1163,11 @@ char *log_severity_level_to_severity_string(netdata_log_level_t level)
1163 return NETDATA_LOG_LEVEL_INFO_STR;
1164 }
1165 }
1166 +
1167 +void log_set_global_severity_for_external_plugins() {
1168 + char *s = getenv("NETDATA_LOG_SEVERITY_LEVEL");
1169 + if (!s)
1170 + return;
1171 + netdata_log_level_t level = log_severity_string_to_severity_level(s);
1172 + log_set_global_severity_level(level);
1173 +}
libnetdata/log/log.h
+1
@@ -120,6 +120,7 @@ extern netdata_log_level_t global_log_severity_level;
120 netdata_log_level_t log_severity_string_to_severity_level(char *level);
121 char *log_severity_level_to_severity_string(netdata_log_level_t level);
122 void log_set_global_severity_level(netdata_log_level_t value);
123 +void log_set_global_severity_for_external_plugins();
124
125 #define error_limit_static_global_var(var, log_every_secs, sleep_usecs) static ERROR_LIMIT var = { .last_logged = 0, .count = 0, .log_every = (log_every_secs), .sleep_ut = (sleep_usecs) }
126 #define error_limit_static_thread_var(var, log_every_secs, sleep_usecs) static __thread ERROR_LIMIT var = { .last_logged = 0, .count = 0, .log_every = (log_every_secs), .sleep_ut = (sleep_usecs) }