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) }