Revision 5f471c95
Added by Ermal LUÇI almost 14 years ago
etc/inc/pfsense-utils.inc | ||
---|---|---|
475 | 475 |
return false; |
476 | 476 |
} |
477 | 477 |
|
478 |
/* |
|
479 |
* gather_altq_queue_stats(): gather altq queue stats and return an array that |
|
480 |
* is queuename|qlength|measured_packets |
|
481 |
* NOTE: this command takes 5 seconds to run |
|
482 |
*/ |
|
483 |
function gather_altq_queue_stats($dont_return_root_queues) { |
|
484 |
exec("/sbin/pfctl -vvsq", $stats_array); |
|
485 |
$queue_stats = array(); |
|
486 |
foreach ($stats_array as $stats_line) { |
|
487 |
$match_array = ""; |
|
488 |
if (preg_match_all("/queue\s+(\w+)\s+/",$stats_line,$match_array)) |
|
489 |
$queue_name = $match_array[1][0]; |
|
490 |
if (preg_match_all("/measured:\s+.*packets\/s\,\s(.*)\s+\]/",$stats_line,$match_array)) |
|
491 |
$speed = $match_array[1][0]; |
|
492 |
if (preg_match_all("/borrows:\s+(.*)/",$stats_line,$match_array)) |
|
493 |
$borrows = $match_array[1][0]; |
|
494 |
if (preg_match_all("/suspends:\s+(.*)/",$stats_line,$match_array)) |
|
495 |
$suspends = $match_array[1][0]; |
|
496 |
if (preg_match_all("/dropped pkts:\s+(.*)/",$stats_line,$match_array)) |
|
497 |
$drops = $match_array[1][0]; |
|
498 |
if (preg_match_all("/measured:\s+(.*)packets/",$stats_line,$match_array)) { |
|
499 |
$measured = $match_array[1][0]; |
|
500 |
if($dont_return_root_queues == true) |
|
501 |
if(stristr($queue_name,"root_") == false) |
|
502 |
array_push($queue_stats, "{$queue_name}|{$speed}|{$measured}|{$borrows}|{$suspends}|{$drops}"); |
|
503 |
} |
|
504 |
} |
|
505 |
return $queue_stats; |
|
506 |
} |
|
507 |
|
|
508 | 478 |
/* |
509 | 479 |
* reverse_strrchr($haystack, $needle): Return everything in $haystack up to the *last* instance of $needle. |
510 | 480 |
* Useful for finding paths and stripping file extensions. |
Also available in: Unified diff
Use the new daemon for status->queues until a proper chart javascript library is availble