The arbitrary maximum should be removed from this plugin.
Also, I rewrote the main action to be a bit more efficient. Instead of cat|grep|sed|awk, it now just calls perl once. :-)
Index: node/node.d.linux/fw_forwarded_local.in
===================================================================
--- node/node.d.linux/fw_forwarded_local.in (revision 1004)
+++ node/node.d.linux/fw_forwarded_local.in (working copy)
@@ -39,11 +39,17 @@
echo 'graph_category network'
echo 'forward.label forward'
echo 'forward.type GAUGE'
- echo 'forward.max 500'''
echo 'local.label local'
echo 'local.type GAUGE'
- echo 'local.max 500'''
exit 0
fi
-cat /proc/net/ip_conntrack | grep ESTABLISHED | sed 's/.*src=\(.*\) .*dst=\(.*\) sport.*src=\(.*\) .*dst=\(.*\) spo.*/\1 \2 \3 \4/g' | awk 'BEGIN {{FORW=0} {LOCAL=0}} {if($1 != $4){ FORW += 1} else { LOCAL += 1}} END {{print "forward.value "FORW} {print "local.value "LOCAL}}'
+perl -ne '
+ BEGIN { $forward= 0; $local= 0 }
+ if( ($src, $dst, $isrc, $idst) =
+ /.*ESTABLISHED src=(.*) .*dst=(.*) sport.*src=(.*) .*dst=(.*) sport.*/ ) {
+ if( $src eq $idst) { $local++ }
+ else { $forward++ }
+ }
+ END { print "forward.value $forward\nlocal.value $local\n" }
+' </proc/net/ip_conntrack