munin-contrib/plugins/udp/udp-statistics

66 lines
2.1 KiB
Perl
Executable File

#!/usr/bin/perl -w
if ( $ARGV[0] ) {
if ( $ARGV[0] eq 'autoconf' ) {
if ( -r '/bin/netstat') {
print "yes\n";
exit 0;
}
print "no\n";
exit 0;
} elsif ( $ARGV[0] eq 'config' ) {
print <<EOM;
graph_title UDP Statistics
graph_args --base 1000 -l 0
graph_vlabel Packets/\${graph_period}
graph_category network
sent.label Sent
sent.draw LINE1
sent.type DERIVE
sent.min 0
received.label Received
received.draw AREA
received.type DERIVE
received.min 0
unknown_ports.label In Unknown Port
unknown_ports.draw LINE1
unknown_ports.type DERIVE
unknown_ports.min 0
receive_buffer_errors.label Receive Buffer Errors
receive_buffer_errors.draw LINE1
receive_buffer_errors.type DERIVE
receive_buffer_errors.min 0
send_buffer_errors.label Send Buffer Errors
send_buffer_errors.draw LINE1
send_buffer_errors.type DERIVE
send_buffer_errors.min 0
in_csum_errors.label In CSUM Errors
in_csum_errors.draw LINE1
in_csum_errors.type DERIVE
in_csum_errors.min 0
ignored_multis.label In Ignored Multis
ignored_multis.draw LINE1
ignored_multis.type DERIVE
ignored_multis.min 0
receive_errors.label Receive Errors
receive_errors.draw LINE1
receive_errors.type DERIVE
receive_errors.min 0
EOM
exit 0;
}
}
@netstat = qx{/bin/netstat -us | grep -A8 '^Udp:' | awk '/packets sent/ \{ print "sent.value " \$1 \}
/packets received/ \{ print "received.value " \$1 \}
/packets to unknown port received/ \{ print "unknown_ports.value " \$1 \}
/receive buffer errors/ \{ print "receive_buffer_errors.value " \$1 \}
/send buffer errors/ \{ print "send_buffer_errors.value " \$1 \}
/InCsumErrors/ \{ print "in_csum_errors.value " \$2 \}
/IgnoredMulti/ \{ print "ignored_multis.value " \$2 \}
/packet receive errors/ \{ print "receive_errors.value " \$1 \}'};
print @netstat;