Skip to content

Commit e91c4f0

Browse files
[enhancement] Move logger calls in subroutine #57
Closes #57
1 parent 452f7f9 commit e91c4f0

File tree

2 files changed

+43
-49
lines changed

2 files changed

+43
-49
lines changed

openwisp-monitoring/files/monitoring.agent

Lines changed: 39 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,27 @@ show_version() {
3434

3535
echoerr() { echo "$@" 1>&2 && exit 1; }
3636

37+
log() {
38+
level="$1"
39+
type="$2"
40+
shift 2
41+
42+
if [ "$type" = "-v" ] && [ "$VERBOSE_MODE" -ne "1" ]; then
43+
return 0
44+
fi
45+
46+
case "$level" in
47+
-i) level=daemon.info ;;
48+
-w) level=daemon.warn ;;
49+
-e) level=daemon.err ;;
50+
-*)
51+
echoerr "Invalid message level : $level"
52+
;;
53+
esac
54+
55+
logger -s "$@" -p "$level" -t openwisp-monitoring
56+
}
57+
3758
check_available_memory() {
3859
while true; do
3960
total=$(ubus call system info | jsonfilter -e '@.memory.total')
@@ -50,9 +71,7 @@ check_available_memory() {
5071
if [ -f "$file" ]; then
5172
rm "$file"
5273
else
53-
[ "$VERBOSE_MODE" -eq "1" ] \
54-
&& logger -s "Not enough memory available, skipping collect data." \
55-
-p daemon.warn
74+
log -w -v "Not enough memory available, skipping collect data."
5675
return 1
5776
fi
5877
fi
@@ -61,14 +80,11 @@ check_available_memory() {
6180

6281
collect_data() {
6382
n=0
64-
[ "$VERBOSE_MODE" -eq "1" ] && logger -s "Collecting NetJSON Monitoring data." \
65-
-p daemon.info
83+
log -i -v "Collecting NetJSON Monitoring data."
6684
until [ "$n" -ge 5 ]; do
6785
/usr/sbin/netjson-monitoring --dump "$MONITORED_INTERFACES" && break
6886

69-
if [ "$n" -eq 5 ]; then
70-
[ "$VERBOSE_MODE" -eq "1" ] && logger -s "Collecting data failed!" -p daemon.err
71-
fi
87+
[ "$n" -eq 5 ] && log -e -v "Collecting data failed!"
7288
n=$((n + 1))
7389
sleep 5
7490
done
@@ -101,8 +117,7 @@ save_data() {
101117
echo "$data" >"$TMP_DIR/$filename"
102118
# compress data
103119
gzip "$TMP_DIR/$filename"
104-
[ "$VERBOSE_MODE" -eq "1" ] && logger -s "Data saved temporarily." \
105-
-p daemon.info
120+
log -i -v "Data saved temporarily."
106121
fi
107122
# get process id of the process sending data
108123
pid=$(pgrep -f "openwisp-monitoring.*--mode send")
@@ -112,17 +127,15 @@ save_data() {
112127
}
113128

114129
handle_sigusr1() {
115-
[ "$VERBOSE_MODE" -eq "1" ] && logger -s "SIGUSR1 received! Sending data." \
116-
-p daemon.info
130+
log -i -v "SIGUSR1 received! Sending data."
117131
return 0
118132
}
119133

120134
send_data() {
121135
while true; do
122136
for file in "$TMP_DIR"/*; do
123137
if [ ! -f "$file" ]; then
124-
[ "$VERBOSE_MODE" -eq "1" ] && logger -s "No data file found to send." \
125-
-p daemon.info
138+
log -i -v "No data file found to send. Checking after $INTERVAL seconds"
126139
trap handle_sigusr1 USR1
127140
# SIGUSR1 signal received, interrupt sleep and continue sending data
128141
sleep "$INTERVAL" &
@@ -149,32 +162,25 @@ send_data() {
149162
while true; do
150163
if [ "$failures" -eq "$MAX_RETRIES" ]; then
151164
[ -f "$RESPONSE_FILE" ] && error_message="\"$(cat "$RESPONSE_FILE")\"" || error_message='"".'
152-
if [ "$VERBOSE_MODE" -eq "1" ]; then
153-
logger -s "Data not sent successfully. Response code is \"$response_code\"." \
154-
"Error message is $error_message" \
155-
-p daemon.err
156-
elif [ "$FAILING" -eq "0" ]; then
165+
log -e -v "Data not sent successfully. Response code is \"$response_code\"." \
166+
"Error message is $error_message"
167+
# check if agent was already passing or not to avoid repeating log messages
168+
if [ "$FAILING" -eq "0" ]; then
157169
FAILING=1
158-
logger -s "Data not sent successfully. Response code is \"$response_code\"." \
159-
"Error message is $error_message" \
160-
"Run with verbose mode to find more." \
161-
-t openwisp-monitoring \
162-
-p daemon.err
170+
[ "$VERBOSE_MODE" -ne "1" ] && log -e -n "Data not sent successfully. Response code is \"$response_code\"." \
171+
"Run with verbose mode to find more."
163172
fi
164173
break
165174
fi
166175
# send data
167176
response_code=$($CURL_COMMAND -H "Content-Type: application/json" -d "$data" "$url")
168177
if [ "$response_code" = "200" ]; then
169-
if [ "$VERBOSE_MODE" -eq "1" ]; then
170-
logger -s "Data sent successfully." \
171-
-p daemon.info
172-
elif [ "$FAILING" -eq "1" ]; then
173-
logger -s "Data sent successfully." \
174-
-t openwisp-monitoring \
175-
-p daemon.info
178+
log -i -v "Data sent successfully."
179+
# check if agent was already failing or not to avoid repeating log messages
180+
if [ "$FAILING" -eq "1" ]; then
176181
FAILING=0
177182
rm -f "$RESPONSE_FILE"
183+
[ "$VERBOSE_MODE" -ne "1" ] && log -i -n "Data sent successfully."
178184
fi
179185
# remove saved data
180186
rm -f "$filename"
@@ -187,8 +193,7 @@ send_data() {
187193
break
188194
else
189195
timeout=$(/usr/sbin/openwisp-get-random-number 2 15)
190-
[ "$VERBOSE_MODE" -eq "1" ] && logger -s "Data not sent successfully. Retrying in $timeout seconds." \
191-
-p daemon.warn
196+
log -w -v "Data not sent successfully. Retrying in $timeout seconds."
192197
failures=$((failures + 1))
193198
sleep "$timeout"
194199
fi
@@ -288,8 +293,7 @@ main() {
288293
shift
289294
;;
290295
-*)
291-
echo "Invalid option: $1"
292-
exit 1
296+
echoerr "Invalid option: $1"
293297
;;
294298
*) break ;;
295299
esac

openwisp-monitoring/files/monitoring.init

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,8 @@ start_service() {
5656
config_get bootup_delay monitoring bootup_delay "10"
5757

5858
interval="$(time_to_seconds "$interval")"
59-
if [ "$interval" -lt 1 ]; then
60-
logger -s "Interval is invalid. Use time value(eg: '10', '2m', '3h', '1d')" \
61-
-t openwisp-monitoring \
62-
-p daemon.err
63-
exit 1
64-
fi
59+
[ -z "$interval" ] && { echo "Interval is invalid. Use time value(eg: '10', '2m', '3h', '1d')" 1>&2 && exit 1; }
60+
6561
interval="--interval $interval"
6662
verbose="--verbose_mode ${verbose_mode:-0}"
6763
required_memory="--required_memory $required_memory"
@@ -72,25 +68,19 @@ start_service() {
7268
# shellcheck disable=SC2086,SC2154
7369
procd_set_param command $PROG $interval $verbose $required_memory --mode collect --monitored_interfaces "$monitored_interfaces"
7470
procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}"
75-
[ "$verbose_mode" -eq "1" ] && procd_set_param stdout 1 && procd_set_param stderr 1
7671
procd_close_instance
7772

7873
procd_open_instance "openwisp-monitoring_send_data"
7974
# shellcheck disable=SC2086
8075
procd_set_param command $PROG $base_url $uuid $key $verify_ssl $interval $verbose $max_retries $bootup_delay --mode send
8176
procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}"
82-
[ "$verbose_mode" -eq "1" ] && procd_set_param stdout 1 && procd_set_param stderr 1
8377
procd_close_instance
8478

85-
logger -s "$PROG_NAME started" \
86-
-t openwisp-monitoring \
87-
-p daemon.info
79+
logger -s "$PROG_NAME started" -t openwisp-monitoring -p daemon.info
8880
}
8981

9082
stop_service() {
91-
logger -s "$PROG_NAME stopping" \
92-
-t openwisp-monitoring \
93-
-p daemon.info
83+
logger -s "$PROG_NAME stopping" -t openwisp-monitoring -p daemon.info
9484
}
9585

9686
service_triggers() {

0 commit comments

Comments
 (0)