nc-backend.sh uses tee to show the metrics on console
Costa Tsaousis (ktsaou) committed
Jun 17, 2017 at 14:16 UTC
df246405de7a4cf96c53b39e7af36ebe6e146559
1 file changed
+16
-6
contrib/nc-backend.sh
+16
-6
@@ -10,6 +10,18 @@ log() {
10
logger --stderr --id=$$ --tag "netdata-nc-backend" "${*}"
11
}
12
13
+mync() {
14
+ local ret
15
+
16
+ log "Running: nc ${*}"
17
+ nc "${@}"
18
+ ret=$?
19
+
20
+ log "nc stopped with return code ${ret}."
21
+
22
+ return ${ret}
23
+}
24
+
25
listen_save_replay_forever() {
26
local file="${1}" port="${2}" real_backend_host="${3}" real_backend_port="${4}" ret delay=1 started ended
27
@@ -18,19 +30,16 @@ listen_save_replay_forever() {
30
log "Starting nc to listen on port ${port} and save metrics to ${file}"
31
32
started=$(date +%s)
21
- nc -l "${port}" >>"${file}"
22
- ret=$?
33
+ mync -l "${port}" | tee -a -p --output-error=exit "${file}"
34
ended=$(date +%s)
35
25
- log "nc stopped with return code ${ret}."
26
-
36
if [ -s "${file}" ]
37
then
38
if [ ! -z "${real_backend_host}" -a ! -z "${real_backend_port}" ]
39
then
40
log "Attempting to send the metrics to the real backend at ${real_backend_host}:${real_backend_port}"
41
33
- nc "${real_backend_host}" "${real_backend_port}" <"${file}"
42
+ mync "${real_backend_host}" "${real_backend_port}" <"${file}"
43
ret=$?
44
45
if [ ${ret} -eq 0 ]
@@ -50,12 +59,13 @@ listen_save_replay_forever() {
59
# if nc cannot listen to port
60
if [ $((ended - started)) -lt 5 ]
61
then
53
- log "nc has been stopped too fast. Waiting 30 secs."
62
+ log "nc has been stopped too fast."
63
delay=30
64
else
65
delay=1
66
fi
67
68
+ log "Waiting ${delay} seconds before listening again for data."
69
sleep ${delay}
70
done
71
}