Report UDP network statistics (#1176)
* Report UDP network statistics Fixes #1093 * Address review comments * Address additional review comments * Fix shellcheck errors
This commit is contained in:
parent
2be0dbddbb
commit
1c17c6dd2b
|
@ -311,7 +311,7 @@ stopNode() {
|
||||||
sudo snap remove solana
|
sudo snap remove solana
|
||||||
fi
|
fi
|
||||||
! tmux list-sessions || tmux kill-session
|
! tmux list-sessions || tmux kill-session
|
||||||
for pattern in solana- remote- oom-monitor; do
|
for pattern in solana- remote- oom-monitor net-stats; do
|
||||||
pkill -9 \$pattern
|
pkill -9 \$pattern
|
||||||
done
|
done
|
||||||
"
|
"
|
||||||
|
|
|
@ -50,6 +50,7 @@ local)
|
||||||
esac
|
esac
|
||||||
|
|
||||||
scripts/oom-monitor.sh > oom-monitor.log 2>&1 &
|
scripts/oom-monitor.sh > oom-monitor.log 2>&1 &
|
||||||
|
scripts/net-stats.sh > net-stats.log 2>&1 &
|
||||||
|
|
||||||
! tmux list-sessions || tmux kill-session
|
! tmux list-sessions || tmux kill-session
|
||||||
|
|
||||||
|
|
|
@ -87,6 +87,7 @@ local)
|
||||||
export LD_LIBRARY_PATH="$PWD/target/perf-libs:$LD_LIBRARY_PATH"
|
export LD_LIBRARY_PATH="$PWD/target/perf-libs:$LD_LIBRARY_PATH"
|
||||||
|
|
||||||
scripts/oom-monitor.sh > oom-monitor.log 2>&1 &
|
scripts/oom-monitor.sh > oom-monitor.log 2>&1 &
|
||||||
|
scripts/net-stats.sh > net-stats.log 2>&1 &
|
||||||
|
|
||||||
case $nodeType in
|
case $nodeType in
|
||||||
leader)
|
leader)
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
#!/bin/bash -e
|
||||||
|
#
|
||||||
|
# Reports network statistics
|
||||||
|
#
|
||||||
|
|
||||||
|
[[ $(uname) == Linux ]] || exit 0
|
||||||
|
|
||||||
|
cd "$(dirname "$0")"
|
||||||
|
|
||||||
|
# shellcheck source=scripts/configure-metrics.sh
|
||||||
|
source configure-metrics.sh
|
||||||
|
|
||||||
|
packets_received=0
|
||||||
|
packets_received_diff=0
|
||||||
|
receive_errors=0
|
||||||
|
receive_errors_diff=0
|
||||||
|
rcvbuf_errors=0
|
||||||
|
rcvbuf_errors_diff=0
|
||||||
|
|
||||||
|
update_netstat() {
|
||||||
|
declare net_stat
|
||||||
|
net_stat=$(netstat -suna)
|
||||||
|
|
||||||
|
declare stats
|
||||||
|
stats=$(echo "$net_stat" | awk 'BEGIN {tmp_var = 0} /packets received/ {tmp_var = $1} END { print tmp_var }')
|
||||||
|
packets_received_diff=$((stats - packets_received))
|
||||||
|
packets_received="$stats"
|
||||||
|
|
||||||
|
stats=$(echo "$net_stat" | awk 'BEGIN {tmp_var = 0} /packet receive errors/ {tmp_var = $1} END { print tmp_var }')
|
||||||
|
receive_errors_diff=$((stats - receive_errors))
|
||||||
|
receive_errors="$stats"
|
||||||
|
|
||||||
|
stats=$(echo "$net_stat" | awk 'BEGIN {tmp_var = 0} /RcvbufErrors/ {tmp_var = $2} END { print tmp_var }')
|
||||||
|
rcvbuf_errors_diff=$((stats - rcvbuf_errors))
|
||||||
|
rcvbuf_errors="$stats"
|
||||||
|
}
|
||||||
|
|
||||||
|
update_netstat
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
update_netstat
|
||||||
|
report="packets_received=$packets_received_diff,receive_errors=$receive_errors_diff,rcvbuf_errors=$rcvbuf_errors_diff"
|
||||||
|
|
||||||
|
echo "$report"
|
||||||
|
./metrics-write-datapoint.sh "net-stats,hostname=$HOSTNAME $report"
|
||||||
|
sleep 60
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 1
|
|
@ -37,3 +37,4 @@ validator)
|
||||||
esac
|
esac
|
||||||
|
|
||||||
snapctl start --enable solana.daemon-oom-monitor
|
snapctl start --enable solana.daemon-oom-monitor
|
||||||
|
snapctl start --enable solana.daemon-net-stats
|
||||||
|
|
|
@ -84,6 +84,11 @@ apps:
|
||||||
command: scripts/snap-config-to-env.sh $SNAP/scripts/oom-monitor.sh
|
command: scripts/snap-config-to-env.sh $SNAP/scripts/oom-monitor.sh
|
||||||
plugs:
|
plugs:
|
||||||
- network
|
- network
|
||||||
|
daemon-net-stats:
|
||||||
|
daemon: simple
|
||||||
|
command: scripts/snap-config-to-env.sh $SNAP/scripts/net-stats.sh
|
||||||
|
plugs:
|
||||||
|
- network
|
||||||
|
|
||||||
parts:
|
parts:
|
||||||
solana:
|
solana:
|
||||||
|
|
Loading…
Reference in New Issue