2021-05-20 22:11:48 +02:00
|
|
|
#!/bin/bash
|
2021-06-11 22:36:15 +02:00
|
|
|
lim=90
|
2021-05-20 22:11:48 +02:00
|
|
|
|
|
|
|
if [[ "$1" != '' ]]; then
|
|
|
|
data="storage/data/$(basename $1)"
|
|
|
|
elif [[ "${get_data[id]}" != '' ]]; then
|
|
|
|
data="storage/data/$(basename ${get_data[id]})"
|
|
|
|
header "Content-Type: image/svg+xml"
|
|
|
|
else
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
label="$(jq -r '.label' < $data | head -n 1 | tr ' ' '_')"
|
|
|
|
start_date="$(jq -r '.date' < $data | tail -n $lim | head -n1)"
|
|
|
|
end_date="$(jq -r '.date' < $data | tail -n1)"
|
|
|
|
tmp="$(mktemp)"
|
2021-06-10 22:57:41 +02:00
|
|
|
type="$(jq -r '.type' < $data | head -n 1)"
|
2021-06-11 00:20:03 +02:00
|
|
|
a=''
|
2021-05-20 22:11:48 +02:00
|
|
|
|
2021-06-10 22:57:41 +02:00
|
|
|
if [[ "$type" == "ping" ]]; then
|
2021-05-20 22:11:48 +02:00
|
|
|
timedata="$(jq -r '.time' < $data | tail -n $lim)"
|
|
|
|
|
|
|
|
while read line; do
|
|
|
|
echo -n 's@'"'"'></circle@'"'"'><title>'"$line"'</title></circle@;'
|
|
|
|
done <<< "$(jq -r '"Name: \(.label)\\\\nPing time: \(.time)ms\\\\nDate: \(.date)"' < "$data" | tail -n $lim)" > $tmp
|
|
|
|
|
2021-06-10 22:57:41 +02:00
|
|
|
elif [[ "$type" == "req" ]]; then
|
2021-05-20 22:11:48 +02:00
|
|
|
timedata="$(jq -r '.status' < $data | tail -n $lim)"
|
|
|
|
a=""
|
|
|
|
for i in $timedata; do
|
|
|
|
if [[ "$i" -gt 0 ]]; then
|
|
|
|
a="${a}0#"
|
2021-06-10 22:57:41 +02:00
|
|
|
elif [[ "$i" == 0 ]]; then
|
2021-05-20 22:11:48 +02:00
|
|
|
a="${a}1#"
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
timedata="$(tr '#' '\n' <<< "$a")"
|
|
|
|
while read line; do
|
|
|
|
echo -n 's@'"'"'></circle@'"'"'><title>'"$line"'</title></circle@;'
|
|
|
|
done <<< "$(jq -r '"Name: \(.label)\\\\nDate: \(.date)"' < "$data" | tail -n $lim)" > $tmp
|
2021-06-10 22:57:41 +02:00
|
|
|
elif [[ "$type" == "port" ]]; then
|
|
|
|
timedata="$(jq -r '.status' < $data | tail -n $lim)"
|
2021-06-11 00:20:03 +02:00
|
|
|
for ii in $timedata; do
|
|
|
|
if [[ "$ii" -gt 0 ]]; then
|
2021-06-10 22:57:41 +02:00
|
|
|
a="${a}0#"
|
2021-06-11 00:20:03 +02:00
|
|
|
elif [[ "$ii" == 0 ]]; then
|
2021-06-10 22:57:41 +02:00
|
|
|
a="${a}1#"
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
timedata="$(tr '#' '\n' <<< "$a")"
|
|
|
|
while read line; do
|
|
|
|
echo -n 's@'"'"'></circle@'"'"'><title>'"$line"'</title></circle@;'
|
|
|
|
done <<< "$(jq -r '"Name: \(.label)\\\\nDate: \(.date)"' < "$data" | tail -n $lim)" > $tmp
|
2021-05-20 22:11:48 +02:00
|
|
|
fi
|
|
|
|
|
|
|
|
svg="$(echo -e "$label\n$timedata" | awk -f "${cfg[namespace]}/code/plot.awk")"
|
|
|
|
tr -d '\n' <<< "$svg" | sed -f $tmp | sed 's@###START_DATE###@'"$start_date"'@;s@###END_DATE###@'"$end_date"'@'
|
|
|
|
|
|
|
|
rm $tmp
|