Project

General

Profile

« Previous | Next » 

Revision ae3c0a12

Added by Jim Pingle over 14 years ago

Only run pfctl once per interface for stats, rather than four times.

View differences:

etc/inc/rrd.inc
298 298

  
299 299
			$rrdupdatesh .= "\n";
300 300
			$rrdupdatesh .= "# polling traffic for interface $ifname $realif \n";
301
			$rrdupdatesh .= "TMPFILE=`mktemp -q /tmp/STATS_{$realif}.XXXXXX` \n";
302
			$rrdupdatesh .= "$pfctl -vvsI -i {$realif} > \$TMPFILE \n";
301 303
			$rrdupdatesh .= "$rrdtool update $rrddbpath$ifname$traffic N:\\\n";
302
			$rrdupdatesh .= "`$pfctl -vvsI -i {$realif} | awk '/In4\/Pass|Out4\/Pass/ {printf \$6 \":\"}'`\\\n";
303
			$rrdupdatesh .= "`$pfctl -vvsI -i {$realif} | awk '/In4\/Block|Out4\/Block/ {printf \$6 \":\"}'|sed -e 's/.\$//'`\n";
304
			$rrdupdatesh .= "`cat \$TMPFILE | awk '/In4\/Pass|Out4\/Pass/ {printf \$6 \":\"}'`\\\n";
305
			$rrdupdatesh .= "`cat \$TMPFILE | awk '/In4\/Block|Out4\/Block/ {printf \$6 \":\"}'|sed -e 's/.\$//'`\n";
304 306

  
305 307
			/* PACKETS, set up the rrd file */
306 308
			if (!file_exists("$rrddbpath$ifname$packets")) {
......
325 327
			$rrdupdatesh .= "\n";
326 328
			$rrdupdatesh .= "# polling packets for interface $ifname $realif \n";
327 329
			$rrdupdatesh .= "$rrdtool update $rrddbpath$ifname$packets N:\\\n";
328
			$rrdupdatesh .= "`$pfctl -vvsI -i {$realif} | awk '/In4\/Pass|Out4\/Pass/ {printf \$4 \":\"}'`\\\n";
329
			$rrdupdatesh .= "`$pfctl -vvsI -i {$realif} | awk '/In4\/Block|Out4\/Block/ {printf \$4 \":\"}'|sed -e 's/.\$//'`\n";
330
			$rrdupdatesh .= "`cat \$TMPFILE | awk '/In4\/Pass|Out4\/Pass/ {printf \$4 \":\"}'`\\\n";
331
			$rrdupdatesh .= "`cat \$TMPFILE | awk '/In4\/Block|Out4\/Block/ {printf \$4 \":\"}'|sed -e 's/.\$//'`\n";
332
			$rrdupdatesh .= "rm \$TMPFILE \n";
330 333

  
331 334
			/* WIRELESS, set up the rrd file */
332 335
			if($config['interfaces'][$ifname]['wireless']['mode'] == "bss") {

Also available in: Unified diff