Skip to content

Commit ceb53c2

Browse files
[chores] Improved curl response message logging #50
Closes #50
1 parent 1dc4f33 commit ceb53c2

1 file changed

Lines changed: 15 additions & 6 deletions

File tree

openwrt-openwisp-monitoring/files/monitoring.agent

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ check_available_memory(){
4343
if [ "$available" -ge "$required" ]; then
4444
echo "0"
4545
else
46-
[ "$VERBOSE_MODE" -eq "1" ] && logger -s "Not enough memory available" \
47-
-p daemon.err
46+
[ "$VERBOSE_MODE" -eq "1" ] && logger -s "Not enough memory available, skipping collect data." \
47+
-p daemon.warn
4848
echo "1"
4949
fi
5050
}
@@ -84,7 +84,7 @@ set_url_and_curl(){
8484

8585
URL="$BASE_URL/api/v1/monitoring/device/$UUID/?key=$KEY"
8686

87-
CURL_COMMAND="curl -s -w "%{http_code}""
87+
CURL_COMMAND="curl -s -w "%{http_code}" --output "$TMP_DIR"/response.txt"
8888
[ "$VERIFY_SSL" -eq "0" ] && CURL_COMMAND="$CURL_COMMAND -k"
8989
[ "$VERBOSE_MODE" -eq "1" ] && CURL_COMMAND="$CURL_COMMAND -v"
9090
MAX_RETRIES=${MAX_RETRIES:-5}
@@ -135,6 +135,10 @@ send_data() {
135135
trap "" USR1
136136
basefilename=${file##*/}
137137
filename=${basefilename%.*}
138+
# remove previous saved response if exist
139+
if [ "$filename" = "response" ]; then
140+
rm "$RESPONSE_FILE" 2>/dev/null && continue
141+
fi
138142
# extra zeroes are added for nanoseconds precision
139143
url="$URL&time=$filename.000000"
140144
# retry sending data in case of failure
@@ -145,12 +149,15 @@ send_data() {
145149
while true
146150
do
147151
if [ "$failures" -eq "$MAX_RETRIES" ]; then
152+
[ -f "$RESPONSE_FILE" ] && error_message="\"$(cat "$RESPONSE_FILE")\"" || error_message='"".'
148153
if [ "$VERBOSE_MODE" -eq "1" ]; then
149-
logger -s "Data not sent successfully. Response received is $response_code" \
154+
logger -s "Data not sent successfully. Response code is \"$response_code\"." \
155+
"Error message is $error_message" \
150156
-p daemon.err
151157
elif [ "$FAILING" -eq "0" ]; then
152158
FAILING=1
153-
logger -s "Data not sent successfully. Response received is $response_code" \
159+
logger -s "Data not sent successfully. Response code is \"$response_code\"." \
160+
"Error message is $error_message" \
154161
"Run with verbose mode to find more." \
155162
-t openwisp_monitoring \
156163
-p daemon.err
@@ -169,9 +176,10 @@ send_data() {
169176
-t openwisp_monitoring \
170177
-p daemon.info
171178
FAILING=0
179+
[ -f "$RESPONSE_FILE" ] && rm "$RESPONSE_FILE"
172180
fi
173181
# remove saved data
174-
rm "$file"
182+
[ -f "$file" ] && rm "$file"
175183
break
176184
else
177185
timeout=$((timeout*2))
@@ -199,6 +207,7 @@ if [ "$MODE" = "collect" ]; then
199207
save_data
200208
elif [ "$MODE" = "send" ]; then
201209
VERIFY_SSL=${VERIFY_SSL:-0}
210+
RESPONSE_FILE="$TMP_DIR"/response.txt
202211
set_url_and_curl && send_data
203212
else
204213
echoerr "The supplied mode is invalid. Only send and collect are allowed"

0 commit comments

Comments
 (0)