69 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| #
 | |
| # Reports network statistics
 | |
| #
 | |
| set -e
 | |
| 
 | |
| [[ $(uname) == Linux ]] || exit 0
 | |
| 
 | |
| cd "$(dirname "$0")"
 | |
| 
 | |
| # shellcheck source=scripts/configure-metrics.sh
 | |
| source configure-metrics.sh
 | |
| 
 | |
| packets_sent=0
 | |
| packets_sent_diff=0
 | |
| packets_received=0
 | |
| packets_received_diff=0
 | |
| receive_errors=0
 | |
| receive_errors_diff=0
 | |
| rcvbuf_errors=0
 | |
| rcvbuf_errors_diff=0
 | |
| in_octets=0
 | |
| in_octets_diff=0
 | |
| out_octets=0
 | |
| out_octets_diff=0
 | |
| 
 | |
| update_netstat() {
 | |
|   declare net_stat
 | |
|   net_stat=$(netstat -suna)
 | |
| 
 | |
|   declare stats
 | |
|   stats=$(echo "$net_stat" | awk 'BEGIN {tmp_var = 0} /packets sent/ {tmp_var = $1} END { print tmp_var }')
 | |
|   packets_sent_diff=$((stats - packets_sent))
 | |
|   packets_sent="$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"
 | |
| 
 | |
|   stats=$(echo "$net_stat" | awk 'BEGIN {tmp_var = 0} /InOctets/ {tmp_var = $2} END { print tmp_var }')
 | |
|   in_octets_diff=$((stats - in_octets))
 | |
|   in_octets="$stats"
 | |
| 
 | |
|   stats=$(echo "$net_stat" | awk 'BEGIN {tmp_var = 0} /OutOctets/ {tmp_var = $2} END { print tmp_var }')
 | |
|   out_octets_diff=$((stats - out_octets))
 | |
|   out_octets="$stats"
 | |
| }
 | |
| 
 | |
| update_netstat
 | |
| 
 | |
| while true; do
 | |
|   update_netstat
 | |
|   report="packets_sent=$packets_sent_diff,packets_received=$packets_received_diff,receive_errors=$receive_errors_diff,rcvbuf_errors=$rcvbuf_errors_diff,in_octets=$in_octets_diff,out_octets=$out_octets_diff"
 | |
| 
 | |
|   echo "$report"
 | |
|   ./metrics-write-datapoint.sh "net-stats,hostname=$HOSTNAME $report"
 | |
|   sleep 1
 | |
| done
 | |
| 
 | |
| exit 1
 |