| 
									
										
										
										
											2018-11-11 08:19:04 -08:00
										 |  |  | #!/usr/bin/env bash
 | 
					
						
							| 
									
										
										
										
											2018-09-10 15:52:08 -07:00
										 |  |  | # | 
					
						
							|  |  |  | # Reports network statistics | 
					
						
							|  |  |  | # | 
					
						
							| 
									
										
										
										
											2018-11-11 09:25:59 -08:00
										 |  |  | set -e | 
					
						
							| 
									
										
										
										
											2018-09-10 15:52:08 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | [[ $(uname) == Linux ]] || exit 0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | cd "$(dirname "$0")" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # shellcheck source=scripts/configure-metrics.sh | 
					
						
							|  |  |  | source configure-metrics.sh | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-14 13:32:13 -07:00
										 |  |  | packets_sent=0 | 
					
						
							|  |  |  | packets_sent_diff=0 | 
					
						
							| 
									
										
										
										
											2018-09-10 15:52:08 -07:00
										 |  |  | packets_received=0 | 
					
						
							|  |  |  | packets_received_diff=0 | 
					
						
							|  |  |  | receive_errors=0 | 
					
						
							|  |  |  | receive_errors_diff=0 | 
					
						
							|  |  |  | rcvbuf_errors=0 | 
					
						
							|  |  |  | rcvbuf_errors_diff=0 | 
					
						
							| 
									
										
										
										
											2018-10-17 17:32:50 -07:00
										 |  |  | in_octets=0 | 
					
						
							|  |  |  | in_octets_diff=0 | 
					
						
							|  |  |  | out_octets=0 | 
					
						
							|  |  |  | out_octets_diff=0 | 
					
						
							| 
									
										
										
										
											2018-09-10 15:52:08 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | update_netstat() { | 
					
						
							|  |  |  |   declare net_stat | 
					
						
							|  |  |  |   net_stat=$(netstat -suna) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   declare stats | 
					
						
							| 
									
										
										
										
											2018-09-14 13:32:13 -07:00
										 |  |  |   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" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-10 15:52:08 -07:00
										 |  |  |   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" | 
					
						
							| 
									
										
										
										
											2018-10-17 17:32:50 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |   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" | 
					
						
							| 
									
										
										
										
											2018-09-10 15:52:08 -07:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | update_netstat | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | while true; do | 
					
						
							|  |  |  |   update_netstat | 
					
						
							| 
									
										
										
										
											2018-10-17 17:32:50 -07:00
										 |  |  |   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" | 
					
						
							| 
									
										
										
										
											2018-09-10 15:52:08 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |   echo "$report" | 
					
						
							|  |  |  |   ./metrics-write-datapoint.sh "net-stats,hostname=$HOSTNAME $report" | 
					
						
							| 
									
										
										
										
											2018-09-11 14:49:05 -07:00
										 |  |  |   sleep 1 | 
					
						
							| 
									
										
										
										
											2018-09-10 15:52:08 -07:00
										 |  |  | done | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit 1 |