From 91b8e8f2179b2d80b1f5361533ff0a291e041392 Mon Sep 17 00:00:00 2001 From: Renato Botelho Date: Thu, 3 Mar 2016 10:34:49 -0300 Subject: Remove Status -> RRD Graphs in favor of Status -> Monitoring. Ticket #5498 --- src/etc/inc/priv.defs.inc | 13 - src/etc/pfSense.obsoletedfiles | 3 + src/usr/local/www/head.inc | 1 - src/usr/local/www/status_rrd_graph.php | 801 -------------- src/usr/local/www/status_rrd_graph_img.php | 1337 ----------------------- src/usr/local/www/status_rrd_graph_settings.php | 234 ---- 6 files changed, 3 insertions(+), 2386 deletions(-) delete mode 100644 src/usr/local/www/status_rrd_graph.php delete mode 100644 src/usr/local/www/status_rrd_graph_img.php delete mode 100644 src/usr/local/www/status_rrd_graph_settings.php diff --git a/src/etc/inc/priv.defs.inc b/src/etc/inc/priv.defs.inc index 750bfe7..ee89f5f 100644 --- a/src/etc/inc/priv.defs.inc +++ b/src/etc/inc/priv.defs.inc @@ -997,19 +997,6 @@ $priv_list['page-status-trafficshaper-queues']['descr'] = gettext("Allow access $priv_list['page-status-trafficshaper-queues']['match'] = array(); $priv_list['page-status-trafficshaper-queues']['match'][] = "status_queues.php*"; -$priv_list['page-status-rrdgraphs'] = array(); -$priv_list['page-status-rrdgraphs']['name'] = gettext("WebCfg - Status: RRD Graphs"); -$priv_list['page-status-rrdgraphs']['descr'] = gettext("Allow access to the 'Status: RRD Graphs' page."); -$priv_list['page-status-rrdgraphs']['match'] = array(); -$priv_list['page-status-rrdgraphs']['match'][] = "status_rrd_graph.php*"; -$priv_list['page-status-rrdgraphs']['match'][] = "status_rrd_graph_img.php*"; - -$priv_list['page-status-rrdgraph-settings'] = array(); -$priv_list['page-status-rrdgraph-settings']['name'] = gettext("WebCfg - Status: RRD Graphs: Settings"); -$priv_list['page-status-rrdgraph-settings']['descr'] = gettext("Allow access to the 'Status: RRD Graphs: Settings' page."); -$priv_list['page-status-rrdgraph-settings']['match'] = array(); -$priv_list['page-status-rrdgraph-settings']['match'][] = "status_rrd_graph_settings.php*"; - $priv_list['page-status-services'] = array(); $priv_list['page-status-services']['name'] = gettext("WebCfg - Status: Services"); $priv_list['page-status-services']['descr'] = gettext("Allow access to the 'Status: Services' page."); diff --git a/src/etc/pfSense.obsoletedfiles b/src/etc/pfSense.obsoletedfiles index 4fbae91..d3778e2 100644 --- a/src/etc/pfSense.obsoletedfiles +++ b/src/etc/pfSense.obsoletedfiles @@ -854,6 +854,9 @@ /usr/local/www/services_usermanager.php /usr/local/www/shortcuts/pkg_upnp.php /usr/local/www/sortable/sortable.min.js +/usr/local/www/status_rrd_graph.php +/usr/local/www/status_rrd_graph_img.php +/usr/local/www/status_rrd_graph_settings.php /usr/local/www/status_slbd_pool.php /usr/local/www/status_slbd_vs.php /usr/local/www/system_advanced.php diff --git a/src/usr/local/www/head.inc b/src/usr/local/www/head.inc index dba85bc..cabe37d 100644 --- a/src/usr/local/www/head.inc +++ b/src/usr/local/www/head.inc @@ -338,7 +338,6 @@ if ($g['platform'] == $g['product_name']) { } $status_menu[] = array(gettext("Queues"), "/status_queues.php"); -$status_menu[] = array(gettext("RRD Graphs"), "/status_rrd_graph.php"); $status_menu[] = array(gettext("Services"), "/status_services.php"); $status_menu[] = array(gettext("System Logs"), "/status_logs.php"); $status_menu[] = array(gettext("Traffic Graph"), "/status_graph.php?if=wan"); diff --git a/src/usr/local/www/status_rrd_graph.php b/src/usr/local/www/status_rrd_graph.php deleted file mode 100644 index e6f98b3..0000000 --- a/src/usr/local/www/status_rrd_graph.php +++ /dev/null @@ -1,801 +0,0 @@ - - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * "This product includes software developed by the pfSense Project - * for use in the pfSense software distribution. (http://www.pfsense.org/). - * - * 4. The names "pfSense" and "pfSense Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * coreteam@pfsense.org. - * - * 5. Products derived from this software may not be called "pfSense" - * nor may "pfSense" appear in their names without prior written - * permission of the Electric Sheep Fencing, LLC. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * - * "This product includes software developed by the pfSense Project - * for use in the pfSense software distribution (http://www.pfsense.org/). - * - * THIS SOFTWARE IS PROVIDED BY THE pfSense PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE pfSense PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * - * ==================================================================== - * - */ - -##|+PRIV -##|*IDENT=page-status-rrdgraphs -##|*NAME=Status: RRD Graphs -##|*DESCR=Allow access to the 'Status: RRD Graphs' page. -##|*MATCH=status_rrd_graph.php* -##|*MATCH=status_rrd_graph_img.php* -##|-PRIV - -require("guiconfig.inc"); -require_once("filter.inc"); -require("shaper.inc"); -require_once("rrd.inc"); - -global $rrd_graph_list, $rrd_period_list, $rrd_graph_length_list, $rrd_style_list; - -unset($input_errors); -/* if the rrd graphs are not enabled redirect to settings page */ -if (!isset($config['rrd']['enable'])) { - header("Location: status_rrd_graph_settings.php"); -} - -$home = getcwd(); -$rrddbpath = "/var/db/rrd/"; -chdir($rrddbpath); -$databases = glob("*.rrd"); -chdir($home); - -if ($_GET['cat']) { - $curcat = htmlspecialchars($_GET['cat']); -} else { - if (!empty($config['rrd']['category'])) { - $curcat = $config['rrd']['category']; - } else { - $curcat = "system"; - } -} - -if ($_POST['cat']) { - $curcat = htmlspecialchars($_POST['cat']); -} - -if ($_GET['zone']) { - $curzone = $_GET['zone']; -} else { - $curzone = ''; -} - -if ($_POST['period']) { - $curperiod = $_POST['period']; -} else { - if (!empty($config['rrd']['period'])) { - $curperiod = $config['rrd']['period']; - } else { - $curperiod = "absolute"; - } -} - -if ($_POST['style']) { - $curstyle = $_POST['style']; -} else { - if (!empty($config['rrd']['style'])) { - $curstyle = $config['rrd']['style']; - } else { - $curstyle = "absolute"; - } -} - -if ($_POST['option']) { - $curoption = $_POST['option']; -} else { - switch ($curcat) { - case "system": - $curoption = "processor"; - break; - case "queues": - $curoption = "queues"; - break; - case "queuedrops": - $curoption = "queuedrops"; - break; - case "quality": - foreach ($databases as $database) { - if (preg_match("/[-]quality\.rrd/i", $database)) { - /* pick off the 1st database we find that matches the quality graph */ - $name = explode("-", $database); - $curoption = "$name[0]"; - continue 2; - } - } - case "wireless": - foreach ($databases as $database) { - if (preg_match("/[-]wireless\.rrd/i", $database)) { - /* pick off the 1st database we find that matches the wireless graph */ - $name = explode("-", $database); - $curoption = "$name[0]"; - continue 2; - } - } - case "cellular": - foreach ($databases as $database) { - if (preg_match("/[-]cellular\.rrd/i", $database)) { - /* pick off the 1st database we find that matches the celullar graph */ - $name = explode("-", $database); - $curoption = "$name[0]"; - continue 2; - } - } - case "vpnusers": - foreach ($databases as $database) { - if (preg_match("/[-]vpnusers\.rrd/i", $database)) { - /* pick off the 1st database we find that matches the VPN graphs */ - $name = explode("-", $database); - $curoption = "$name[0]"; - continue 2; - } - } - case "dhcpd": - foreach ($databases as $database) { - if (preg_match("/[-]dhcpd\.rrd/i", $database)) { - /* pick off the 1st database we find that matches the dhcpd graph */ - $name = explode("-", $database); - $curoption = "$name[0]"; - continue 2; - } - } - case "captiveportal": - $curoption = "allgraphs"; - break; - case "ntpd": - if (isset($config['ntpd']['statsgraph'])) { - $curoption = "allgraphs"; - } else { - $curoption = "processor"; - $curcat = "system"; - } - break; - default: - $curoption = "wan"; - break; - } -} - -$now = time(); -if ($curcat == "custom") { - if (is_numeric($_GET['start'])) { - if ($start < ($now - (3600 * 24 * 365 * 5))) { - $start = $now - (8 * 3600); - } - - $start = $_POST['start']; - } else if ($_POST['start']) { - $start = strtotime($_POST['start']); - - if ($start === FALSE || $start === -1) { - $input_errors[] = gettext("Invalid start date/time:") . " '{$_POST['start']}'"; - - $start = $now - (8 * 3600); - } - } else { - $start = $now - (8 * 3600); - } -} - -if (is_numeric($_GET['end'])) { - $end = $_GET['end']; -} else if ($_GET['end']) { - $end = strtotime($_GET['end']); - if ($end === FALSE || $end === -1) { - $input_errors[] = gettext("Invalid end date/time:") . " '{$_POST['end']}'"; - - $end = $now; - } -} else { - $end = $now; -} - -/* this should never happen */ -if ($end < $start) { - log_error(sprintf(gettext("start %d is smaller than end %d"), $start, $end)); - $end = $now; -} - -$seconds = $end - $start; - -/* sort names reverse so WAN comes first */ -rsort($databases); - -/* these boilerplate databases are required for the other menu choices */ -$dbheader = array("allgraphs-traffic.rrd", - "allgraphs-quality.rrd", - "allgraphs-wireless.rrd", - "allgraphs-cellular.rrd", - "allgraphs-vpnusers.rrd", - "allgraphs-packets.rrd", - "system-allgraphs.rrd", - "system-throughput.rrd", - "outbound-quality.rrd", - "outbound-packets.rrd", - "outbound-traffic.rrd"); - -/* additional menu choices for the custom tab */ -$dbheader_custom = array("system-throughput.rrd"); - -foreach ($databases as $database) { - if (stristr($database, "-wireless")) { - $wireless = true; - } - if (stristr($database, "-queues")) { - $queues = true; - } - if (stristr($database, "-cellular") && !empty($config['ppps'])) { - $cellular = true; - } - if (stristr($database, "-vpnusers")) { - $vpnusers = true; - } - if (stristr($database, "captiveportal-") && is_array($config['captiveportal'])) { - $captiveportal = true; - } - if (stristr($database, "ntpd") && isset($config['ntpd']['statsgraph'])) { - $ntpd = true; - } - if (stristr($database, "-dhcpd") && is_array($config['dhcpd'])) { - $dhcpd = true; - } - -} -/* append the existing array to the header */ -$ui_databases = array_merge($dbheader, $databases); -$custom_databases = array_merge($dbheader_custom, $databases); - -switch ($curcat) { - case "vpnusers": - $curcattext = gettext("VPN Users"); - break; - case "captiveportal": - $curcattext = gettext("Captive Portal"); - break; - case "ntpd": - $curcattext = gettext("NTP"); - break; - case "dhcpd": - $curcattext = gettext("DHCP Server"); - break; - case "queuedrops": - $curcattext = gettext("QueueDrops"); - break; - default: - $curcattext = ucfirst($curcat); - break; -} - -$pgtitle = array(gettext("Status"), gettext("RRD Graphs"), gettext($curcattext)); - -/* Load all CP zones */ -if ($captiveportal && is_array($config['captiveportal'])) { - $cp_zones_tab_array = array(); - foreach ($config['captiveportal'] as $cpkey => $cp) { - if (!isset($cp['enable'])) { - continue; - } - - if ($curzone == '') { - $tabactive = true; - $curzone = $cpkey; - } elseif ($curzone == $cpkey) { - $tabactive = true; - } else { - $tabactive = false; - } - - $cp_zones_tab_array[] = array($cp['zone'], $tabactive, "status_rrd_graph.php?cat=captiveportal&zone=$cpkey"); - } -} - -function get_dates($curperiod, $graph) { - global $rrd_graph_length_list; - $now = time(); - $end = $now; - - if ($curperiod == "absolute") { - $start = $end - $rrd_graph_length_list[$graph]; - } else { - $curyear = date('Y', $now); - $curmonth = date('m', $now); - $curweek = date('W', $now); - $curweekday = date('N', $now) - 1; // We want to start on monday - $curday = date('d', $now); - $curhour = date('G', $now); - - switch ($curperiod) { - case "previous": - $offset = -1; - break; - default: - $offset = 0; - } - switch ($graph) { - case "eighthour": - if ($curhour < 24) { - $starthour = 16; - } - if ($curhour < 16) { - $starthour = 8; - } - if ($curhour < 8) { - $starthour = 0; - } - - switch ($offset) { - case 0: - $houroffset = $starthour; - break; - default: - $houroffset = $starthour + ($offset * 8); - break; - } - $start = mktime($houroffset, 0, 0, $curmonth, $curday, $curyear); - if ($offset != 0) { - $end = mktime(($houroffset + 8), 0, 0, $curmonth, $curday, $curyear); - } - break; - case "day": - $start = mktime(0, 0, 0, $curmonth, ($curday + $offset), $curyear); - if ($offset != 0) { - $end = mktime(0, 0, 0, $curmonth, (($curday + $offset) + 1), $curyear); - } - break; - case "week": - switch ($offset) { - case 0: - $weekoffset = 0; - break; - default: - $weekoffset = ($offset * 7) - 7; - break; - } - $start = mktime(0, 0, 0, $curmonth, (($curday - $curweekday) + $weekoffset), $curyear); - if ($offset != 0) { - $end = mktime(0, 0, 0, $curmonth, (($curday - $curweekday) + $weekoffset + 7), $curyear); - } - break; - case "month": - $start = mktime(0, 0, 0, ($curmonth + $offset), 0, $curyear); - if ($offset != 0) { - $end = mktime(0, 0, 0, (($curmonth + $offset) + 1), 0, $curyear); - } - break; - case "quarter": - $start = mktime(0, 0, 0, (($curmonth - 2) + $offset), 0, $curyear); - if ($offset != 0) { - $end = mktime(0, 0, 0, (($curmonth + $offset) + 1), 0, $curyear); - } - break; - case "year": - $start = mktime(0, 0, 0, 1, 0, ($curyear + $offset)); - if ($offset != 0) { - $end = mktime(0, 0, 0, 1, 0, (($curyear + $offset) +1)); - } - break; - case "fouryear": - $start = mktime(0, 0, 0, 1, 0, (($curyear - 3) + $offset)); - if ($offset != 0) { - $end = mktime(0, 0, 0, 1, 0, (($curyear + $offset) +1)); - } - break; - } - } - // echo "start $start ". date('l jS \of F Y h:i:s A', $start) .", end $end ". date('l jS \of F Y h:i:s A', $end) ."
"; - $dates = array(); - $dates['start'] = $start; - $dates['end'] = $end; - return $dates; -} - -function make_tabs() { - global $curcat, $queues, $wireless, $cellular, $vpnusers, $captiveportal, $dhcpd, $ntpd; - - $tab_array = array(); - $tab_array[] = array(gettext("System"), ($curcat == "system"), "status_rrd_graph.php?cat=system"); - $tab_array[] = array(gettext("Traffic"), ($curcat == "traffic"), "status_rrd_graph.php?cat=traffic"); - $tab_array[] = array(gettext("Packets"), ($curcat == "packets"), "status_rrd_graph.php?cat=packets"); - $tab_array[] = array(gettext("Quality"), ($curcat == "quality"), "status_rrd_graph.php?cat=quality"); - - - if ($queues) { - $tab_array[] = array(gettext("Queues"), ($curcat == "queues"), "status_rrd_graph.php?cat=queues"); - $tab_array[] = array(gettext("QueueDrops"), ($curcat == "queuedrops"), "status_rrd_graph.php?cat=queuedrops"); - } - - if ($wireless) { - $tab_array[] = array(gettext("Wireless"), ($curcat == "wireless"), "status_rrd_graph.php?cat=wireless"); - } - - if ($cellular) { - $tab_array[] = array(gettext("Cellular"), ($curcat == "cellular"), "status_rrd_graph.php?cat=cellular"); - } - - if ($vpnusers) { - $tab_array[] = array(gettext("VPN Users"), ($curcat == "vpnusers"), "status_rrd_graph.php?cat=vpnusers"); - } - - if ($captiveportal) { - $tab_array[] = array(gettext("Captive Portal"), ($curcat == "captiveportal"), "status_rrd_graph.php?cat=captiveportal"); - } - - if ($ntpd) { - $tab_array[] = array("NTP", ($curcat == "ntpd"), "status_rrd_graph.php?cat=ntpd"); - } - - if ($dhcpd) { - $tab_array[] = array(gettext("DHCP Server"), ($curcat == "dhcpd"), "status_rrd_graph.php?cat=dhcpd"); - } - - $tab_array[] = array(gettext("Custom"), ($curcat == "custom"), "status_rrd_graph.php?cat=custom"); - $tab_array[] = array(gettext("Settings"), ($curcat == "settings"), "status_rrd_graph_settings.php"); - - return($tab_array); -} - -// Create the selectable list of graphs -function build_options() { - global $curcat, $custom_databases, $ui_databases; - - $optionslist = array(); - - if ($curcat == "custom") { - foreach ($custom_databases as $db => $database) { - $optionc = explode("-", $database); - $friendly = convert_friendly_interface_to_friendly_descr(strtolower($optionc[0])); - if (empty($friendly)) { - $friendly = $optionc[0]; - } - - $search = array("-", ".rrd", $optionc[0]); - $replace = array(" :: ", "", $friendly); - $prettyprint = ucwords(str_replace($search, $replace, $database)); - $optionslist[$database] = htmlspecialchars($prettyprint); - } - } - - foreach ($ui_databases as $db => $database) { - if (!preg_match("/($curcat)/i", $database)) { - continue; - } - - if (($curcat == "captiveportal") && !empty($curzone) && !preg_match("/captiveportal-{$curzone}/i", $database)) { - continue; - } - - $optionc = explode("-", $database); - $search = array("-", ".rrd", $optionc); - $replace = array(" :: ", "", $friendly); - - switch ($curcat) { - case "captiveportal": - $optionc = str_replace($search, $replace, $optionc[2]); - $prettyprint = ucwords(str_replace($search, $replace, $optionc)); - $optionslist[$optionc] = htmlspecialchars($prettyprint); - break; - case "system": - $optionc = str_replace($search, $replace, $optionc[1]); - $prettyprint = ucwords(str_replace($search, $replace, $optionc)); - $optionslist[$optionc] = htmlspecialchars($prettyprint); - break; - default: - /* Deduce an interface if possible and use the description */ - $optionc = "$optionc[0]"; - $friendly = convert_friendly_interface_to_friendly_descr(strtolower($optionc)); - if (empty($friendly)) { - $friendly = $optionc; - } - $search = array("-", ".rrd", $optionc); - $replace = array(" :: ", "", $friendly); - $prettyprint = ucwords(str_replace($search, $replace, $friendly)); - $optionslist[$optionc] = htmlspecialchars($prettyprint); - } - } - - return($optionslist); -} - -include("head.inc"); - -display_top_tabs(make_tabs()); - -if ($input_errors && count($input_errors)) { - print_input_errors($input_errors); -} - -$form = new Form(false); - -$section = new Form_Section('Graph Settings'); - -$group = new Form_Group('Options'); - -$group->add(new Form_Select( - 'option', - 'Graphs', - $curoption, - build_options() -))->setHelp('Graph'); - -$group->add(new Form_Select( - 'style', - 'Style', - $curstyle, - $rrd_style_list -))->setHelp('Style'); - -$group->add(new Form_Select( - 'period', - 'Period', - $curperiod, - $rrd_period_list -))->setHelp('Period'); - -if ($curcat == 'custom') { - $group->setHelp('Any changes to these options may not take affect until the next auto-refresh.'); -} - -$section->add($group); - -if ($curcat == 'custom') { - $section->addInput(new Form_Input( - 'cat', - null, - 'hidden', - 'custom' - )); - - $tz = date_default_timezone_get(); - $tz_msg = gettext("Enter date and/or time. Current timezone:") . " $tz"; - $start_fmt = strftime("%m/%d/%Y %H:%M:%S", $start); - $end_fmt = strftime("%m/%d/%Y %H:%M:%S", $end); - - $group = new Form_Group(''); - - $group->add(new Form_Input( - 'start', - 'Start', - 'datetime', - $start_fmt - ))->setHelp('Start'); - - $group->add(new Form_Input( - 'end', - 'End', - 'datetime', - $end_fmt - ))->setHelp('End'); - - if ($curcat != 'custom') { - $group->setHelp('Any changes to these options may not take affect until the next auto-refresh'); - } - - $section->add($group); - - $form->add($section); - print($form); - - $curdatabase = $curoption; - $graph = "custom-$curdatabase"; - if (in_array($curdatabase, $custom_databases)) { - $id = "{$graph}-{$curoption}-{$curdatabase}"; - $id = preg_replace('/\./', '_', $id); -?> -
- <?=$prettydb?> <?=gettext(" src="status_rrd_graph_img.php?start=&end=&database=&style=&graph=" /> -
-add($section); - print($form); - - foreach ($rrd_graph_list as $graph) { - /* check which databases are valid for our category */ - foreach ($ui_databases as $curdatabase) { - if (!preg_match("/($curcat)/i", $curdatabase)) { - continue; - } - - if (($curcat == "captiveportal") && !empty($curzone) && !preg_match("/captiveportal-{$curzone}/i", $curdatabase)) { - continue; - } - - $optionc = explode("-", $curdatabase); - $search = array("-", ".rrd", $optionc); - $replace = array(" :: ", "", $friendly); - - switch ($curoption) { - case "outbound": - /* make sure we do not show the placeholder databases in the outbound view */ - if ((stristr($curdatabase, "outbound")) || (stristr($curdatabase, "allgraphs"))) { - continue 2; - } - /* only show interfaces with a gateway */ - $optionc = "$optionc[0]"; - if (!interface_has_gateway($optionc)) { - if (!isset($gateways_arr)) { - if (preg_match("/quality/i", $curdatabase)) { - $gateways_arr = return_gateways_array(); - } else { - $gateways_arr = array(); - } - } - $found_gateway = false; - foreach ($gateways_arr as $gw) { - if ($gw['name'] == $optionc) { - $found_gateway = true; - break; - } - } - if (!$found_gateway) { - continue 2; - } - } - - if (!preg_match("/(^$optionc-|-$optionc\\.)/i", $curdatabase)) { - continue 2; - } - break; - case "allgraphs": - /* make sure we do not show the placeholder databases in the all view */ - if ((stristr($curdatabase, "outbound")) || (stristr($curdatabase, "allgraphs"))) { - continue 2; - } - break; - default: - /* just use the name here */ - if (!preg_match("/(^$curoption-|-$curoption\\.)/i", $curdatabase)) { - continue 2; - } - } - - if (in_array($curdatabase, $ui_databases)) { - $id = "{$graph}-{$curoption}-{$curdatabase}"; - $id = preg_replace('/\./', '_', $id); - - $dates = get_dates($curperiod, $graph); - $start = $dates['start']; - $end = $dates['end']; -?> -
- <?=$prettydb?> Graph -
- - - - - - - - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * "This product includes software developed by the pfSense Project - * for use in the pfSense software distribution. (http://www.pfsense.org/). - * - * 4. The names "pfSense" and "pfSense Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * coreteam@pfsense.org. - * - * 5. Products derived from this software may not be called "pfSense" - * nor may "pfSense" appear in their names without prior written - * permission of the Electric Sheep Fencing, LLC. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * - * "This product includes software developed by the pfSense Project - * for use in the pfSense software distribution (http://www.pfsense.org/). - * - * THIS SOFTWARE IS PROVIDED BY THE pfSense PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE pfSense PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * - * ==================================================================== - * - */ - -require_once("globals.inc"); -require_once("guiconfig.inc"); -require_once("filter.inc"); -require_once("shaper.inc"); -require_once("rrd.inc"); - -global $g, $rrd_graph_list, $rrd_period_list, $rrd_graph_length_list; -$rrddbpath = "/var/db/rrd/"; -$rrdtmppath = "/tmp/"; - -$pgtitle = array(gettext("System"), gettext("RRD Graphs"), gettext("Image Viewer")); - -if ($_GET['database']) { - $curdatabase = basename($_GET['database']); - $curdatabase = str_replace(array("<", ">", ";", "&", "'", '"', '|'), "", htmlspecialchars_decode($curdatabase, ENT_QUOTES | ENT_HTML401)); - /* Ensure the file is valid and exists */ - if (!file_exists("{$rrddbpath}{$curdatabase}")) { - $curdatabase = "wan-traffic.rrd"; - } -} else { - $curdatabase = "wan-traffic.rrd"; -} - -/* Validate the passed style */ -if ($_GET['style'] && array_key_exists($_GET['style'], $rrd_style_list)) { - $curstyle = $_GET['style']; -} else { - $curstyle = "inverse"; -} - -/* This is used for temp name. Check the graph against our known list of valid graphs. */ -if ($_GET['graph'] && in_array($_GET['graph'], $rrd_graph_list)) { - $curgraph = htmlspecialchars_decode($_GET['graph'], ENT_QUOTES | ENT_HTML401); -} else { - $curgraph = "custom"; -} - -$now = time(); - -if (is_numeric($_GET['start'])) { - $start = $_GET['start']; -} else { - $start = $now - (8 * 3600); -} - -if (is_numeric($_GET['end'])) { - $end = $_GET['end']; -} else { - $end = $now; -} - -/* this should never happen */ -if ($end < $start) { - log_error(sprintf(gettext("start %d is smaller than end %d"), $start, $end)); - $end = $now; -} - -$seconds = $end - $start; - -$scales = array(); -$scales[14400] = "MINUTE:5:MINUTE:10:MINUTE:30:0:%H%:%M"; -$scales[57600] = "MINUTE:30:HOUR:1:HOUR:1:0:%H"; -$scales[172800] = "HOUR:1:HOUR:6:HOUR:2:0:%H"; -$scales[691200] = "HOUR:2:HOUR:12:DAY:1:0:%D %d"; -$scales[2764800] = "DAY:1:WEEK:1:WEEK:1:0:Week %W"; -$scales[16070400] = "WEEK:1:MONTH:1:MONTH:1:0:%b"; -$scales[42854400] = "MONTH:1:MONTH:1:MONTH:1:0:%b"; - -$archives = array(); -$archives[1] = 1200; -$archives[5] = 720; -$archives[60] = 1860; -$archives[1440] = 2284; - -$defOptions = array( - 'to' => 1, - 'parts' => 1, - 'precision' => 'minute', - 'distance' => FALSE, - 'separator' => ', ' -); - -/* always set the average to the highest value as a fallback */ -$average = 1440 * 60; -foreach ($archives as $rra => $value) { - $archivestart = $now - ($rra * 60 * $value); - if ($archivestart <= $start) { - $average = $rra * 60; - break; - } -} - -foreach ($scales as $scalelength => $value) { - if ($scalelength >= $seconds) { - $scale = $value; - break; - } -} - -// log_error("start $start, end $end, archivestart $archivestart, average $average, scale $scale, seconds $seconds"); - -/* Deduce a interface if possible and use the description */ -$curif = explode("-", $curdatabase); -$curif = "$curif[0]"; -$friendly = convert_friendly_interface_to_friendly_descr(strtolower($curif)); -if ($friendly == "") { - $friendly = $curif; -} -$search = array("-", ".rrd", $curif); -$replace = array(" :: ", "", $friendly); -$prettydb = ucwords(str_replace($search, $replace, $curdatabase)); - -$rrdtool = "/usr/bin/nice -n20 /usr/local/bin/rrdtool"; -$uptime = "/usr/bin/uptime"; -$sed = "/usr/bin/sed"; - -$havg = timeDiff($average, $defOptions); -$hperiod = timeDiff($seconds, $defOptions); -$data = true; - -/* Don't leave it up to RRD Tool to select the RRA and resolution to use. */ -/* Specify the RRA and resolution to use per the graph havg value. */ -switch ($havg) { - case "1 minute": $step = 60; break; - case "5 minutes": $step = 300; break; - case "1 hour": $step = 3600; break; - case "1 day": $step = 86400; break; - default: $step = 0; break; -} - -chdir($rrddbpath); -$databases = glob("*.rrd"); -rsort($databases); - -/* compare bytes/sec counters, divide bps by 8 */ -read_altq_config(); -if ($altq_list_queues[$curif]) { - $altq =& $altq_list_queues[$curif]; - switch ($altq->GetBwscale()) { - case "Gb": - $factor = 1024 * 1024 * 1024; - break; - case "Mb": - $factor = 1024 * 1024; - break; - case "Kb": - $factor = 1024; - break; - case "b": - default: - $factor = 1; - break; - } - $upstream = (($altq->GetBandwidth()*$factor)/8); - if ($upstream != 0) { - $downstream = $upstream; /* XXX: Ugly hack */ - } else { - $downstream = $upstream = 12500000; - } - $upif = $curif; - $downif = "lan"; /* XXX should this be set to something else?! */ -} else { - $altq = null; - $downstream = 12500000; - $upstream = 12500000; - $upif = "wan"; - $downif = "lan"; -} - -$speedlimit = ($upstream + $downstream); - -/* Set default colors explicitly.*/ -/* Traffic Outbound Out-P-4, Out-B-4, Out-P-6, Out-B-6 */ -$colortrafficup = array('666666', 'CCCCCC', '2217AA', '625AE7'); - -/* Traffic Inbound In-P-4, In-B-4, In-P-6, In-B-6 */ -$colortrafficdown = array('990000', 'CC0000', 'FFC875', 'FF9900'); - -/* Packets Outbound Out-P-4, Out-B-4, Out-P-6, Out-B-6 */ -$colorpacketsup = array('666666', 'CCCCCC', '2217AA', '625AE7'); - -/* Packets Inbound In-P-4, In-B-4, In-P-6, In-B-6 */ -$colorpacketsdown = array('990000', 'CC0000', 'FFC875', 'FF9900'); - -/* 95th Percentile Lines Out, In */ -$colortraffic95 = array('660000', 'FF0000'); - -/* State Table pfrate, pfstates, pfnat, srcip, dstip */ -$colorstates = array('00AA00', '990000', '0000FF', '000000', 'DD9B00'); - -/* Processor Usage user, nice, system, int, processes */ -$colorprocessor = array('00AA00', '990000', '0000FF', 'DD9B00', '000000'); - -/* Memory Usage active, inact, free, cache, wire */ -$colormemory = array('00AA00', '990000', '0000FF', '666666', 'DD9B00'); - -/* MBUF Usage current, cache, total, max */ -$colormbuf = array('0080FF', '00E344', 'FF0000', '000000'); - -/* Traffic Shaper Queues q1, q2, q3, q4, q5, q6, q7, q8, q9 */ -$colorqueuesup = array('000000', '7B0000', '0080FF', '00E344', 'FF0000', '2217AA', 'FFC875', 'FF9900', 'CC0000'); -$colorqueuesdown = array('000000', '7B7B7B', '999999', 'BBBBBB', 'CCCCCC', 'D9D9D9', 'EEEEEE', 'FFFFFF', 'CCCCCC'); - -$colorqueuesdropup = array('000000', '7B0000', '0080FF', '00E344', 'FF0000', '2217AA', 'FFC875', 'FF9900', 'CC0000'); -$colorqueuesdropdown = array('000000', '7B7B7B', '999999', 'BBBBBB', 'CCCCCC', 'D9D9D9', 'EEEEEE', 'FFFFFF', 'CCCCCC'); - -/* Quality Graph Delay >420, 180-420, 60-180, 20-60, <20, Delay Avg */ -$colorqualityrtt = array('990000', 'a83c3c', 'b36666', 'bd9090', 'cccccc', '000000'); -/* Quality Graph Standard Deviation */ -$colorqualitystddev = '55333355'; -/* Quality Graph Loss */ -$colorqualityloss = 'ee0000'; - -/* Wireless Graph SNR, Rate, Channel*/ -/* Cellular Graph RSSI, */ -$colorwireless = array('333333', 'a83c3c', '999999'); - -/* SPAMD Times min area, avg area, max area, Time line */ -$colorspamdtime = array('DDDDFF', 'AAAAFF', 'DDDDFF', '000066'); -/* SPAMD Connections max area, min area, min line, max line, avg line */ -$colorspamdconn = array('AA00BB', 'FFFFFF', '660088', 'FFFF88', '006600'); - -/* OpenVPN Users Online Users */ -$colorvpnusers = array('990000'); - -/* NTPD stats offset, clk jit, sys jit, wander */ -$colorntpd = array('0080FF', '00E344', 'FF0000', '000000'); - -/* Captive Portal Total Users Total Users */ -/* Captive Portal Concurrent Concurrent Users */ -$colorcaptiveportalusers = array('990000'); - -$colordhcpd = array('990000', '0000FF', '000000'); - -switch ($curstyle) { - case "absolute": - $multiplier = 1; - $AREA = "LINE1"; - break; - default: - $multiplier = -1; - $AREA = "AREA"; - break; -} - -function timeDiff($time, $opt = array()) { - // The default values - $defOptions = array( - 'to' => 0, - 'parts' => 1, - 'precision' => 'second', - 'distance' => TRUE, - 'separator' => ', ' - ); - $opt = array_merge($defOptions, $opt); - // Default to current time if no to point is given - (!$opt['to']) && ($opt['to'] = time()); - // Init an empty string - $str = ''; - // To or From computation - $diff = ($opt['to'] > $time) ? $opt['to'] - $time : $time - $opt['to']; - // An array of label => periods of seconds; - $periods = array( - 'decade' => 315569260, - 'year' => 31539600, - 'month' => 2629744, - 'week' => 604800, - 'day' => 86400, - 'hour' => 3600, - 'minute' => 60, - 'second' => 1 - ); - // 31539600, 31556926, 31622400 - // Round to precision - if ($opt['precision'] != 'second') { - $diff = round(($diff / $periods[$opt['precision']])) * $periods[$opt['precision']]; - } - // Report the value is 'less than 1 ' precision period away - (0 == $diff) && ($str = 'less than 1 ' . $opt['precision']); - // Loop over each period - foreach ($periods as $label => $value) { - // Stitch together the time difference string - (($x = round($diff / $value)) && $opt['parts']--) && $str .= ($str ? $opt['separator'] : '') . ($x .' '. $label. ($x > 1 ? 's' : '')); - // Stop processing if no more parts are going to be reported. - if ($opt['parts'] == 0 || $label == $opt['precision']) { - break; - } - // Get ready for the next pass - $diff -= $x * $value; - } - $opt['distance'] && $str .= ($str && $opt['to'] >= $time) ? ' ago' : ' away'; - return $str; -} - - -if ((strstr($curdatabase, "-traffic.rrd")) && (file_exists("$rrddbpath$curdatabase"))) { - /* define graphcmd for traffic stats */ - $graphcmd = "$rrdtool graph " . escapeshellarg("{$rrdtmppath}{$curdatabase}-{$curgraph}.png") . " "; - $graphcmd .= "--start $start --end $end --step $step --vertical-label \"bits/sec\" "; - $graphcmd .= "--color SHADEA#eeeeee --color SHADEB#eeeeee "; - $graphcmd .= "--title \"" . php_uname('n') . " - {$prettydb} - {$hperiod} - {$havg} average\" "; - $graphcmd .= "--height 200 --width 620 "; - $graphcmd .= "DEF:$curif-in_bytes_pass=$rrddbpath$curdatabase:inpass:AVERAGE:step=$step "; - $graphcmd .= "DEF:$curif-out_bytes_pass=$rrddbpath$curdatabase:outpass:AVERAGE:step=$step "; - $graphcmd .= "DEF:$curif-in_bytes_block=$rrddbpath$curdatabase:inblock:AVERAGE:step=$step "; - $graphcmd .= "DEF:$curif-out_bytes_block=$rrddbpath$curdatabase:outblock:AVERAGE:step=$step "; - - $graphcmd .= "DEF:$curif-in6_bytes_pass=$rrddbpath$curdatabase:inpass6:AVERAGE:step=$step "; - $graphcmd .= "DEF:$curif-out6_bytes_pass=$rrddbpath$curdatabase:outpass6:AVERAGE:step=$step "; - $graphcmd .= "DEF:$curif-in6_bytes_block=$rrddbpath$curdatabase:inblock6:AVERAGE:step=$step "; - $graphcmd .= "DEF:$curif-out6_bytes_block=$rrddbpath$curdatabase:outblock6:AVERAGE:step=$step "; - - $graphcmd .= "CDEF:\"$curif-in_bits_pass=$curif-in_bytes_pass,8,*\" "; - $graphcmd .= "CDEF:\"$curif-out_bits_pass=$curif-out_bytes_pass,8,*\" "; - $graphcmd .= "CDEF:\"$curif-in_bits_block=$curif-in_bytes_block,8,*\" "; - $graphcmd .= "CDEF:\"$curif-out_bits_block=$curif-out_bytes_block,8,*\" "; - - $graphcmd .= "CDEF:\"$curif-in6_bits_pass=$curif-in6_bytes_pass,8,*\" "; - $graphcmd .= "CDEF:\"$curif-out6_bits_pass=$curif-out6_bytes_pass,8,*\" "; - $graphcmd .= "CDEF:\"$curif-in6_bits_block=$curif-in6_bytes_block,8,*\" "; - $graphcmd .= "CDEF:\"$curif-out6_bits_block=$curif-out6_bytes_block,8,*\" "; - - $graphcmd .= "CDEF:\"$curif-in_bytes=$curif-in_bytes_pass,$curif-in_bytes_block,+\" "; - $graphcmd .= "CDEF:\"$curif-out_bytes=$curif-out_bytes_pass,$curif-out_bytes_block,+\" "; - $graphcmd .= "CDEF:\"$curif-in_bits=$curif-in_bits_pass,$curif-in_bits_block,+\" "; - $graphcmd .= "CDEF:\"$curif-out_bits=$curif-out_bits_pass,$curif-out_bits_block,+\" "; - - $graphcmd .= "CDEF:\"$curif-in6_bytes=$curif-in6_bytes_pass,$curif-in6_bytes_block,+\" "; - $graphcmd .= "CDEF:\"$curif-out6_bytes=$curif-out6_bytes_pass,$curif-out6_bytes_block,+\" "; - $graphcmd .= "CDEF:\"$curif-in6_bits=$curif-in6_bits_pass,$curif-in6_bits_block,+\" "; - $graphcmd .= "CDEF:\"$curif-out6_bits=$curif-out6_bits_pass,$curif-out6_bits_block,+\" "; - - $graphcmd .= "CDEF:\"$curif-bits_io=$curif-in_bits,$curif-out_bits,+\" "; - $graphcmd .= "CDEF:\"$curif-out_bits_block_neg=$curif-out_bits_block,$multiplier,*\" "; - $graphcmd .= "CDEF:\"$curif-out_bits_pass_neg=$curif-out_bits_pass,$multiplier,*\" "; - - $graphcmd .= "CDEF:\"$curif-bits6_io=$curif-in6_bits,$curif-out6_bits,+\" "; - $graphcmd .= "CDEF:\"$curif-out6_bits_block_neg=$curif-out6_bits_block,$multiplier,*\" "; - $graphcmd .= "CDEF:\"$curif-out6_bits_pass_neg=$curif-out6_bits_pass,$multiplier,*\" "; - - $graphcmd .= "CDEF:\"$curif-bytes_in_pass=$curif-in_bytes_pass,0,$speedlimit,LIMIT,UN,0,$curif-in_bytes_pass,IF,$average,*\" "; - $graphcmd .= "CDEF:\"$curif-bytes_out_pass=$curif-out_bytes_pass,0,$speedlimit,LIMIT,UN,0,$curif-out_bytes_pass,IF,$average,*\" "; - $graphcmd .= "CDEF:\"$curif-bytes_in_block=$curif-in_bytes_block,0,$speedlimit,LIMIT,UN,0,$curif-in_bytes_block,IF,$average,*\" "; - $graphcmd .= "CDEF:\"$curif-bytes_out_block=$curif-out_bytes_block,0,$speedlimit,LIMIT,UN,0,$curif-out_bytes_block,IF,$average,*\" "; - - $graphcmd .= "CDEF:\"$curif-bytes_in6_pass=$curif-in6_bytes_pass,0,$speedlimit,LIMIT,UN,0,$curif-in6_bytes_pass,IF,$average,*\" "; - $graphcmd .= "CDEF:\"$curif-bytes_out6_pass=$curif-out6_bytes_pass,0,$speedlimit,LIMIT,UN,0,$curif-out6_bytes_pass,IF,$average,*\" "; - $graphcmd .= "CDEF:\"$curif-bytes_in6_block=$curif-in6_bytes_block,0,$speedlimit,LIMIT,UN,0,$curif-in6_bytes_block,IF,$average,*\" "; - $graphcmd .= "CDEF:\"$curif-bytes_out6_block=$curif-out6_bytes_block,0,$speedlimit,LIMIT,UN,0,$curif-out6_bytes_block,IF,$average,*\" "; - - $graphcmd .= "CDEF:\"$curif-bytes_pass=$curif-bytes_in_pass,$curif-bytes_out_pass,+\" "; - $graphcmd .= "CDEF:\"$curif-bytes_block=$curif-bytes_in_block,$curif-bytes_out_block,+\" "; - - $graphcmd .= "CDEF:\"$curif-bytes_pass6=$curif-bytes_in6_pass,$curif-bytes_out6_pass,+\" "; - $graphcmd .= "CDEF:\"$curif-bytes_block6=$curif-bytes_in6_block,$curif-bytes_out6_block,+\" "; - - $graphcmd .= "CDEF:\"$curif-bytes_in_t_pass=$curif-in_bytes_pass,0,$speedlimit,LIMIT,UN,0,$curif-in_bytes_pass,IF,$seconds,*\" "; - $graphcmd .= "CDEF:\"$curif-bytes_out_t_pass=$curif-out_bytes_pass,0,$speedlimit,LIMIT,UN,0,$curif-out_bytes_pass,IF,$seconds,*\" "; - $graphcmd .= "CDEF:\"$curif-bytes_in_t_block=$curif-in_bytes_block,0,$speedlimit,LIMIT,UN,0,$curif-in_bytes_block,IF,$seconds,*\" "; - $graphcmd .= "CDEF:\"$curif-bytes_out_t_block=$curif-out_bytes_block,0,$speedlimit,LIMIT,UN,0,$curif-out_bytes_block,IF,$seconds,*\" "; - - $graphcmd .= "CDEF:\"$curif-bytes_in6_t_pass=$curif-in6_bytes_pass,0,$speedlimit,LIMIT,UN,0,$curif-in6_bytes_pass,IF,$seconds,*\" "; - $graphcmd .= "CDEF:\"$curif-bytes_out6_t_pass=$curif-out6_bytes_pass,0,$speedlimit,LIMIT,UN,0,$curif-out6_bytes_pass,IF,$seconds,*\" "; - $graphcmd .= "CDEF:\"$curif-bytes_in6_t_block=$curif-in6_bytes_block,0,$speedlimit,LIMIT,UN,0,$curif-in6_bytes_block,IF,$seconds,*\" "; - $graphcmd .= "CDEF:\"$curif-bytes_out6_t_block=$curif-out6_bytes_block,0,$speedlimit,LIMIT,UN,0,$curif-out6_bytes_block,IF,$seconds,*\" "; - - $graphcmd .= "CDEF:\"$curif-bytes_t_pass=$curif-bytes_in_t_pass,$curif-bytes_out_t_pass,+\" "; - $graphcmd .= "CDEF:\"$curif-bytes_t_block=$curif-bytes_in_t_block,$curif-bytes_out_t_block,+\" "; - $graphcmd .= "CDEF:\"$curif-bytes_t=$curif-bytes_t_pass,$curif-bytes_t_block,+\" "; - - $graphcmd .= "CDEF:\"$curif-bytes_t_pass6=$curif-bytes_in6_t_pass,$curif-bytes_out6_t_pass,+\" "; - $graphcmd .= "CDEF:\"$curif-bytes_t_block6=$curif-bytes_in6_t_block,$curif-bytes_out6_t_block,+\" "; - $graphcmd .= "CDEF:\"$curif-bytes_t6=$curif-bytes_t_pass6,$curif-bytes_t_block6,+\" "; - $graphcmd .= "VDEF:\"$curif-in_bits_95=$curif-in_bits,95,PERCENT\" "; - $graphcmd .= "CDEF:\"$curif-out_bits_mul=$curif-out_bits,$multiplier,*\" "; - $perc = $multiplier > 0 ? "95" : "5"; - $graphcmd .= "VDEF:\"$curif-out_bits_95=$curif-out_bits_mul,{$perc},PERCENT\" "; - - $graphcmd .= "AREA:\"$curif-in_bits_block#{$colortrafficdown[1]}:$curif-in-block\" "; - $graphcmd .= "AREA:\"$curif-in_bits_pass#{$colortrafficdown[0]}:$curif-in-pass:STACK\" "; - $graphcmd .= "AREA:\"$curif-in6_bits_block#{$colortrafficdown[3]}:$curif-in6-block:STACK\" "; - $graphcmd .= "AREA:\"$curif-in6_bits_pass#{$colortrafficdown[2]}:$curif-in6-pass:STACK\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - - $graphcmd .= "{$AREA}:\"$curif-out_bits_block_neg#{$colortrafficup[1]}:$curif-out-block\" "; - $graphcmd .= "{$AREA}:\"$curif-out_bits_pass_neg#{$colortrafficup[0]}:$curif-out-pass:STACK\" "; - $graphcmd .= "{$AREA}:\"$curif-out6_bits_block_neg#{$colortrafficup[3]}:$curif-out6-block:STACK\" "; - $graphcmd .= "{$AREA}:\"$curif-out6_bits_pass_neg#{$colortrafficup[2]}:$curif-out6-pass:STACK\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "HRULE:\"$curif-in_bits_95#{$colortraffic95[1]}:$curif-in (95%)\" "; - $graphcmd .= "HRULE:\"$curif-out_bits_95#{$colortraffic95[0]}:$curif-out (95%)\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t\t\t maximum\t average\t\t current\t period\t 95th percentile\\n\" "; - $graphcmd .= "COMMENT:\"IPv4 in-pass\t\" "; - $graphcmd .= "GPRINT:\"$curif-in_bits_pass:MAX:%7.2lf %sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-in_bits_pass:AVERAGE:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-in_bits_pass:LAST:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-bytes_in_t_pass:AVERAGE:%7.2lf %sB i\" "; - $graphcmd .= "GPRINT:\"$curif-in_bits_95:%7.2lf %sb/s\" "; - - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"IPv4 out-pass\t\" "; - $graphcmd .= "GPRINT:\"$curif-out_bits_pass:MAX:%7.2lf %sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-out_bits_pass:AVERAGE:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-out_bits_pass:LAST:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-bytes_out_t_pass:AVERAGE:%7.2lf %sB o\" "; - $graphcmd .= "GPRINT:\"$curif-out_bits_95:%7.2lf %sb/s\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"IPv4 in-block\t\" "; - $graphcmd .= "GPRINT:\"$curif-in_bits_block:MAX:%7.2lf %sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-in_bits_block:AVERAGE:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-in_bits_block:LAST:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-bytes_in_t_block:AVERAGE:%7.2lf %sB i\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"IPv4 out-block\t\" "; - $graphcmd .= "GPRINT:\"$curif-out_bits_block:MAX:%7.2lf %sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-out_bits_block:AVERAGE:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-out_bits_block:LAST:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-bytes_out_t_block:AVERAGE:%7.2lf %sB o\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"IPv6 in-pass\t\" "; - $graphcmd .= "GPRINT:\"$curif-in6_bits_pass:MAX:%7.2lf %sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-in6_bits_pass:AVERAGE:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-in6_bits_pass:LAST:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-bytes_in6_t_pass:AVERAGE:%7.2lf %sB i\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"IPv6 out-pass\t\" "; - $graphcmd .= "GPRINT:\"$curif-out6_bits_pass:MAX:%7.2lf %sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-out6_bits_pass:AVERAGE:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-out6_bits_pass:LAST:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-bytes_out6_t_pass:AVERAGE:%7.2lf %sB o\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"IPv6 in-block\t\" "; - $graphcmd .= "GPRINT:\"$curif-in6_bits_block:MAX:%7.2lf %sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-in6_bits_block:AVERAGE:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-in6_bits_block:LAST:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-bytes_in6_t_block:AVERAGE:%7.2lf %sB i\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"IPv6 out-block\t\" "; - $graphcmd .= "GPRINT:\"$curif-out6_bits_block:MAX:%7.2lf %sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-out6_bits_block:AVERAGE:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-out6_bits_block:LAST:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"$curif-bytes_out6_t_block:AVERAGE:%7.2lf %sB o\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t\t\t\t\t\t\t\t\t\t\t\t" . strftime('%b %d %H\:%M\:%S %Y') . "\" "; -} elseif (strstr($curdatabase, "-throughput.rrd")) { - /* define graphcmd for throughput stats */ - /* this gathers all interface statistics, the database does not actually exist */ - $graphcmd = "$rrdtool graph " . escapeshellarg("{$rrdtmppath}{$curdatabase}-{$curgraph}.png") . " "; - $graphcmd .= "--start $start --end $end --step $step "; - $graphcmd .= "--vertical-label \"bits/sec\" "; - $graphcmd .= "--color SHADEA#eeeeee --color SHADEB#eeeeee "; - $graphcmd .= "--title \"" . php_uname('n') . " - {$prettydb} - {$hperiod} - {$havg} average\" "; - $graphcmd .= "--height 200 --width 620 "; - - $iflist = get_configured_interface_list(); - $g = 0; - $operand = ""; - $comma = ""; - $graphtputbip = ""; - $graphtputbop = ""; - $graphtputbtp = ""; - $graphtputbib = ""; - $graphtputbob = ""; - $graphtputbtb = ""; - $graphtputbyip = ""; - $graphtputbyop = ""; - $graphtputbytp = ""; - $graphtputbyib = ""; - $graphtputbyob = ""; - $graphtputbytb = ""; - foreach ($iflist as $ifname) { - /* collect all interface stats */ - $graphcmd .= "DEF:\"{$ifname}-in_bytes_pass={$rrddbpath}{$ifname}-traffic.rrd:inpass:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"{$ifname}-out_bytes_pass={$rrddbpath}{$ifname}-traffic.rrd:outpass:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"{$ifname}-in_bytes_block={$rrddbpath}{$ifname}-traffic.rrd:inblock:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"{$ifname}-out_bytes_block={$rrddbpath}{$ifname}-traffic.rrd:outblock:AVERAGE:step=$step\" "; - - $graphcmd .= "CDEF:\"{$ifname}-in_bytes={$ifname}-in_bytes_pass,{$ifname}-in_bytes_block,+\" "; - $graphcmd .= "CDEF:\"{$ifname}-out_bytes={$ifname}-out_bytes_pass,{$ifname}-out_bytes_block,+\" "; - - $graphcmd .= "CDEF:\"{$ifname}-in_bits_pass={$ifname}-in_bytes_pass,8,*\" "; - $graphcmd .= "CDEF:\"{$ifname}-out_bits_pass={$ifname}-out_bytes_pass,8,*\" "; - $graphcmd .= "CDEF:\"{$ifname}-bits_io_pass={$ifname}-in_bits_pass,{$ifname}-out_bits_pass,+\" "; - - $graphcmd .= "CDEF:\"{$ifname}-in_bits_block={$ifname}-in_bytes_block,8,*\" "; - $graphcmd .= "CDEF:\"{$ifname}-out_bits_block={$ifname}-out_bytes_block,8,*\" "; - $graphcmd .= "CDEF:\"{$ifname}-bits_io_block={$ifname}-in_bits_block,{$ifname}-out_bits_block,+\" "; - - $graphcmd .= "CDEF:\"{$ifname}-bytes_in_pass={$ifname}-in_bytes_pass,0,$speedlimit,LIMIT,UN,0,{$ifname}-in_bytes_pass,IF,$average,*\" "; - $graphcmd .= "CDEF:\"{$ifname}-bytes_out_pass={$ifname}-out_bytes_pass,0,$speedlimit,LIMIT,UN,0,{$ifname}-out_bytes_pass,IF,$average,*\" "; - $graphcmd .= "CDEF:\"{$ifname}-bytes_in_block={$ifname}-in_bytes_block,0,$speedlimit,LIMIT,UN,0,{$ifname}-in_bytes_block,IF,$average,*\" "; - $graphcmd .= "CDEF:\"{$ifname}-bytes_out_block={$ifname}-out_bytes_block,0,$speedlimit,LIMIT,UN,0,{$ifname}-out_bytes_block,IF,$average,*\" "; - $graphcmd .= "CDEF:\"{$ifname}-bytes_pass={$ifname}-bytes_in_pass,{$ifname}-bytes_out_pass,+\" "; - $graphcmd .= "CDEF:\"{$ifname}-bytes_block={$ifname}-bytes_in_pass,{$ifname}-bytes_out_block,+\" "; - - $graphcmd .= "CDEF:\"{$ifname}-bytes_in_t_pass={$ifname}-in_bytes,0,$speedlimit,LIMIT,UN,0,{$ifname}-in_bytes_pass,IF,$seconds,*\" "; - $graphcmd .= "CDEF:\"{$ifname}-bytes_in_t_block={$ifname}-in_bytes,0,$speedlimit,LIMIT,UN,0,{$ifname}-in_bytes_block,IF,$seconds,*\" "; - $graphcmd .= "CDEF:\"{$ifname}-bytes_out_t_pass={$ifname}-out_bytes,0,$speedlimit,LIMIT,UN,0,{$ifname}-out_bytes_pass,IF,$seconds,*\" "; - $graphcmd .= "CDEF:\"{$ifname}-bytes_out_t_block={$ifname}-out_bytes,0,$speedlimit,LIMIT,UN,0,{$ifname}-out_bytes_block,IF,$seconds,*\" "; - $graphcmd .= "CDEF:\"{$ifname}-bytes_t_pass={$ifname}-bytes_in_t_pass,{$ifname}-bytes_out_t_pass,+\" "; - $graphcmd .= "CDEF:\"{$ifname}-bytes_t_block={$ifname}-bytes_in_t_block,{$ifname}-bytes_out_t_block,+\" "; - if ($g > 0) { - $operand .= ",+"; - $comma = ","; - } - $graphtputbip .= "{$comma}{$ifname}-in_bits_pass"; - $graphtputbop .= "{$comma}{$ifname}-out_bits_pass"; - $graphtputbtp .= "{$comma}{$ifname}-bits_io_pass"; - $graphtputbib .= "{$comma}{$ifname}-in_bits_block"; - $graphtputbob .= "{$comma}{$ifname}-out_bits_block"; - $graphtputbtb .= "{$comma}{$ifname}-bits_io_block"; - $graphtputbyip .= "{$comma}{$ifname}-bytes_in_t_pass"; - $graphtputbyop .= "{$comma}{$ifname}-bytes_out_t_pass"; - $graphtputbyib .= "{$comma}{$ifname}-bytes_in_t_block"; - $graphtputbyob .= "{$comma}{$ifname}-bytes_out_t_block"; - $graphtputbytp .= "{$comma}{$ifname}-bytes_t_pass"; - $graphtputbytb .= "{$comma}{$ifname}-bytes_t_block"; - $g++; - } - $graphcmd .= "CDEF:\"tput-in_bits_pass={$graphtputbip}{$operand}\" "; - $graphcmd .= "CDEF:\"tput-out_bits_pass={$graphtputbop}{$operand}\" "; - $graphcmd .= "CDEF:\"tput-bits_io_pass={$graphtputbtp}{$operand}\" "; - - $graphcmd .= "CDEF:\"tput-in_bits_block={$graphtputbib}{$operand}\" "; - $graphcmd .= "CDEF:\"tput-out_bits_block={$graphtputbob}{$operand}\" "; - $graphcmd .= "CDEF:\"tput-bits_io_block={$graphtputbtb}{$operand}\" "; - - $graphcmd .= "CDEF:\"tput-out_bits_pass_neg=tput-out_bits_pass,$multiplier,*\" "; - $graphcmd .= "CDEF:\"tput-out_bits_block_neg=tput-out_bits_block,$multiplier,*\" "; - - $graphcmd .= "CDEF:\"tput-bytes_in_t_pass={$graphtputbyip}{$operand}\" "; - $graphcmd .= "CDEF:\"tput-bytes_out_t_pass={$graphtputbyop}{$operand}\" "; - $graphcmd .= "CDEF:\"tput-bytes_t_pass={$graphtputbytp}{$operand}\" "; - - $graphcmd .= "CDEF:\"tput-bytes_in_t_block={$graphtputbyib}{$operand}\" "; - $graphcmd .= "CDEF:\"tput-bytes_out_t_block={$graphtputbyob}{$operand}\" "; - $graphcmd .= "CDEF:\"tput-bytes_t_block={$graphtputbytb}{$operand}\" "; - - $graphcmd .= "AREA:\"tput-in_bits_block#{$colortrafficdown[0]}:in-block \" "; - $graphcmd .= "AREA:\"tput-in_bits_pass#{$colortrafficdown[1]}:in-pass \" "; - - $graphcmd .= "{$AREA}:\"tput-out_bits_block_neg#{$colortrafficup[1]}:out-block \" "; - $graphcmd .= "{$AREA}:\"tput-out_bits_pass_neg#{$colortrafficup[0]}:out-pass \" "; - - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t maximum average current period\\n\" "; - $graphcmd .= "COMMENT:\"in-pass\t\" "; - $graphcmd .= "GPRINT:\"tput-in_bits_pass:MAX:%7.2lf %sb/s\" "; - $graphcmd .= "GPRINT:\"tput-in_bits_pass:AVERAGE:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"tput-in_bits_pass:LAST:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"tput-bytes_in_t_pass:AVERAGE:%7.2lf %sB i\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"out-pass\t\" "; - $graphcmd .= "GPRINT:\"tput-out_bits_pass:MAX:%7.2lf %sb/s\" "; - $graphcmd .= "GPRINT:\"tput-out_bits_pass:AVERAGE:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"tput-out_bits_pass:LAST:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"tput-bytes_out_t_pass:AVERAGE:%7.2lf %sB o\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"in-block\t\" "; - $graphcmd .= "GPRINT:\"tput-in_bits_block:MAX:%7.2lf %sb/s\" "; - $graphcmd .= "GPRINT:\"tput-in_bits_block:AVERAGE:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"tput-in_bits_block:LAST:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"tput-bytes_in_t_block:AVERAGE:%7.2lf %sB i\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"out-block\t\" "; - $graphcmd .= "GPRINT:\"tput-out_bits_block:MAX:%7.2lf %sb/s\" "; - $graphcmd .= "GPRINT:\"tput-out_bits_block:AVERAGE:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"tput-out_bits_block:LAST:%7.2lf %Sb/s\" "; - $graphcmd .= "GPRINT:\"tput-bytes_out_t_block:AVERAGE:%7.2lf %sB o\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t\t\t\t\t\t\t\t\t\t\t\t" . strftime('%b %d %H\:%M\:%S %Y') . "\" "; -} elseif ((strstr($curdatabase, "-packets.rrd")) && (file_exists("$rrddbpath$curdatabase"))) { - /* define graphcmd for packets stats */ - $graphcmd = "$rrdtool graph " . escapeshellarg("{$rrdtmppath}{$curdatabase}-{$curgraph}.png") . " "; - $graphcmd .= "--start $start --end $end --step $step "; - $graphcmd .= "--vertical-label \"packets/sec\" "; - $graphcmd .= "--color SHADEA#eeeeee --color SHADEB#eeeeee "; - $graphcmd .= "--title \"" . php_uname('n') . " - {$prettydb} - {$hperiod} - {$havg} average\" "; - $graphcmd .= "--height 200 --width 620 "; - $graphcmd .= "DEF:\"$curif-in_pps_pass=$rrddbpath$curdatabase:inpass:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"$curif-out_pps_pass=$rrddbpath$curdatabase:outpass:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"$curif-in_pps_block=$rrddbpath$curdatabase:inblock:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"$curif-out_pps_block=$rrddbpath$curdatabase:outblock:AVERAGE:step=$step\" "; - - $graphcmd .= "DEF:\"$curif-in6_pps_pass=$rrddbpath$curdatabase:inpass6:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"$curif-out6_pps_pass=$rrddbpath$curdatabase:outpass6:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"$curif-in6_pps_block=$rrddbpath$curdatabase:inblock6:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"$curif-out6_pps_block=$rrddbpath$curdatabase:outblock6:AVERAGE:step=$step\" "; - - $graphcmd .= "CDEF:\"$curif-in_pps=$curif-in_pps_pass,$curif-in_pps_block,+\" "; - $graphcmd .= "CDEF:\"$curif-out_pps=$curif-out_pps_pass,$curif-out_pps_block,+\" "; - $graphcmd .= "CDEF:\"$curif-out_pps_pass_neg=$curif-out_pps_pass,$multiplier,*\" "; - $graphcmd .= "CDEF:\"$curif-out_pps_block_neg=$curif-out_pps_block,$multiplier,*\" "; - - $graphcmd .= "CDEF:\"$curif-in6_pps=$curif-in6_pps_pass,$curif-in6_pps_block,+\" "; - $graphcmd .= "CDEF:\"$curif-out6_pps=$curif-out6_pps_pass,$curif-out6_pps_block,+\" "; - $graphcmd .= "CDEF:\"$curif-out6_pps_pass_neg=$curif-out6_pps_pass,$multiplier,*\" "; - $graphcmd .= "CDEF:\"$curif-out6_pps_block_neg=$curif-out6_pps_block,$multiplier,*\" "; - - $graphcmd .= "CDEF:\"$curif-pps_in_pass=$curif-in_pps_pass,0,12500000,LIMIT,UN,0,$curif-in_pps_pass,IF,$average,*\" "; - $graphcmd .= "CDEF:\"$curif-pps_out_pass=$curif-out_pps_pass,0,12500000,LIMIT,UN,0,$curif-out_pps_pass,IF,$average,*\" "; - $graphcmd .= "CDEF:\"$curif-pps_in_block=$curif-in_pps_block,0,12500000,LIMIT,UN,0,$curif-in_pps_block,IF,$average,*\" "; - $graphcmd .= "CDEF:\"$curif-pps_out_block=$curif-out_pps_block,0,12500000,LIMIT,UN,0,$curif-out_pps_block,IF,$average,*\" "; - - $graphcmd .= "CDEF:\"$curif-pps_in6_pass=$curif-in6_pps_pass,0,12500000,LIMIT,UN,0,$curif-in6_pps_pass,IF,$average,*\" "; - $graphcmd .= "CDEF:\"$curif-pps_out6_pass=$curif-out6_pps_pass,0,12500000,LIMIT,UN,0,$curif-out6_pps_pass,IF,$average,*\" "; - $graphcmd .= "CDEF:\"$curif-pps_in6_block=$curif-in6_pps_block,0,12500000,LIMIT,UN,0,$curif-in6_pps_block,IF,$average,*\" "; - $graphcmd .= "CDEF:\"$curif-pps_out6_block=$curif-out6_pps_block,0,12500000,LIMIT,UN,0,$curif-out6_pps_block,IF,$average,*\" "; - - $graphcmd .= "CDEF:\"$curif-pps_io=$curif-in_pps,$curif-out_pps,+\" "; - $graphcmd .= "CDEF:\"$curif-pps_pass=$curif-pps_in_pass,$curif-pps_out_pass,+\" "; - $graphcmd .= "CDEF:\"$curif-pps_block=$curif-pps_in_block,$curif-pps_out_block,+\" "; - - $graphcmd .= "CDEF:\"$curif-pps_io6=$curif-in6_pps,$curif-out6_pps,+\" "; - $graphcmd .= "CDEF:\"$curif-pps_pass6=$curif-pps_in6_pass,$curif-pps_out6_pass,+\" "; - $graphcmd .= "CDEF:\"$curif-pps_block6=$curif-pps_in6_block,$curif-pps_out6_block,+\" "; - - $graphcmd .= "CDEF:\"$curif-pps_in_t_pass=$curif-in_pps_pass,0,12500000,LIMIT,UN,0,$curif-in_pps_pass,IF,$seconds,*\" "; - $graphcmd .= "CDEF:\"$curif-pps_out_t_pass=$curif-out_pps_pass,0,12500000,LIMIT,UN,0,$curif-out_pps_pass,IF,$seconds,*\" "; - $graphcmd .= "CDEF:\"$curif-pps_in_t_block=$curif-in_pps_block,0,12500000,LIMIT,UN,0,$curif-in_pps_block,IF,$seconds,*\" "; - $graphcmd .= "CDEF:\"$curif-pps_out_t_block=$curif-out_pps_block,0,12500000,LIMIT,UN,0,$curif-out_pps_block,IF,$seconds,*\" "; - - $graphcmd .= "CDEF:\"$curif-pps_in6_t_pass=$curif-in6_pps_pass,0,12500000,LIMIT,UN,0,$curif-in6_pps_pass,IF,$seconds,*\" "; - $graphcmd .= "CDEF:\"$curif-pps_out6_t_pass=$curif-out6_pps_pass,0,12500000,LIMIT,UN,0,$curif-out6_pps_pass,IF,$seconds,*\" "; - $graphcmd .= "CDEF:\"$curif-pps_in6_t_block=$curif-in6_pps_block,0,12500000,LIMIT,UN,0,$curif-in6_pps_block,IF,$seconds,*\" "; - $graphcmd .= "CDEF:\"$curif-pps_out6_t_block=$curif-out6_pps_block,0,12500000,LIMIT,UN,0,$curif-out6_pps_block,IF,$seconds,*\" "; - - $graphcmd .= "CDEF:\"$curif-pps_t_pass=$curif-pps_in_t_pass,$curif-pps_out_t_pass,+\" "; - $graphcmd .= "CDEF:\"$curif-pps_t_block=$curif-pps_in_t_block,$curif-pps_out_t_block,+\" "; - - $graphcmd .= "CDEF:\"$curif-pps_t_pass6=$curif-pps_in6_t_pass,$curif-pps_out6_t_pass,+\" "; - $graphcmd .= "CDEF:\"$curif-pps_t_block6=$curif-pps_in6_t_block,$curif-pps_out6_t_block,+\" "; - - $graphcmd .= "AREA:\"$curif-in_pps_block#{$colorpacketsdown[1]}:$curif-in-block\" "; - $graphcmd .= "AREA:\"$curif-in_pps_pass#{$colorpacketsdown[0]}:$curif-in-pass:STACK\" "; - $graphcmd .= "AREA:\"$curif-in6_pps_block#{$colorpacketsdown[3]}:$curif-in6-block:STACK\" "; - $graphcmd .= "AREA:\"$curif-in6_pps_pass#{$colorpacketsdown[2]}:$curif-in6-pass:STACK\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "$AREA:\"$curif-out_pps_block_neg#{$colorpacketsup[1]}:$curif-out-block\" "; - $graphcmd .= "$AREA:\"$curif-out_pps_pass_neg#{$colorpacketsup[0]}:$curif-out-pass:STACK\" "; - $graphcmd .= "$AREA:\"$curif-out6_pps_block_neg#{$colorpacketsup[3]}:$curif-out6-block:STACK\" "; - $graphcmd .= "$AREA:\"$curif-out6_pps_pass_neg#{$colorpacketsup[2]}:$curif-out6-pass:STACK\" "; - - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t maximum average current period\\n\" "; - $graphcmd .= "COMMENT:\"in-pass\t\" "; - $graphcmd .= "GPRINT:\"$curif-in_pps_pass:MAX:%7.2lf %s pps\" "; - $graphcmd .= "GPRINT:\"$curif-in_pps_pass:AVERAGE:%7.2lf %S pps\" "; - $graphcmd .= "GPRINT:\"$curif-in_pps_pass:LAST:%7.2lf %S pps\" "; - $graphcmd .= "GPRINT:\"$curif-pps_in_t_pass:AVERAGE:%7.2lf %s pkts\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"out-pass\t\" "; - $graphcmd .= "GPRINT:\"$curif-out_pps_pass:MAX:%7.2lf %s pps\" "; - $graphcmd .= "GPRINT:\"$curif-out_pps_pass:AVERAGE:%7.2lf %S pps\" "; - $graphcmd .= "GPRINT:\"$curif-out_pps_pass:LAST:%7.2lf %S pps\" "; - $graphcmd .= "GPRINT:\"$curif-pps_out_t_pass:AVERAGE:%7.2lf %s pkts\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"in-block\t\" "; - $graphcmd .= "GPRINT:\"$curif-in_pps_block:MAX:%7.2lf %s pps\" "; - $graphcmd .= "GPRINT:\"$curif-in_pps_block:AVERAGE:%7.2lf %S pps\" "; - $graphcmd .= "GPRINT:\"$curif-in_pps_block:LAST:%7.2lf %S pps\" "; - $graphcmd .= "GPRINT:\"$curif-pps_in_t_block:AVERAGE:%7.2lf %s pkts\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"out-block\t\" "; - $graphcmd .= "GPRINT:\"$curif-out_pps_block:MAX:%7.2lf %s pps\" "; - $graphcmd .= "GPRINT:\"$curif-out_pps_block:AVERAGE:%7.2lf %S pps\" "; - $graphcmd .= "GPRINT:\"$curif-out_pps_block:LAST:%7.2lf %S pps\" "; - $graphcmd .= "GPRINT:\"$curif-pps_out_t_block:AVERAGE:%7.2lf %s pkts\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"in-pass6\t\" "; - $graphcmd .= "GPRINT:\"$curif-in6_pps_pass:MAX:%7.2lf %s pps\" "; - $graphcmd .= "GPRINT:\"$curif-in6_pps_pass:AVERAGE:%7.2lf %S pps\" "; - $graphcmd .= "GPRINT:\"$curif-in6_pps_pass:LAST:%7.2lf %S pps\" "; - $graphcmd .= "GPRINT:\"$curif-pps_in6_t_pass:AVERAGE:%7.2lf %s pkts\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"out-pass6\t\" "; - $graphcmd .= "GPRINT:\"$curif-out6_pps_pass:MAX:%7.2lf %s pps\" "; - $graphcmd .= "GPRINT:\"$curif-out6_pps_pass:AVERAGE:%7.2lf %S pps\" "; - $graphcmd .= "GPRINT:\"$curif-out6_pps_pass:LAST:%7.2lf %S pps\" "; - $graphcmd .= "GPRINT:\"$curif-pps_out6_t_pass:AVERAGE:%7.2lf %s pkts\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"in-block6\t\" "; - $graphcmd .= "GPRINT:\"$curif-in6_pps_block:MAX:%7.2lf %s pps\" "; - $graphcmd .= "GPRINT:\"$curif-in6_pps_block:AVERAGE:%7.2lf %S pps\" "; - $graphcmd .= "GPRINT:\"$curif-in6_pps_block:LAST:%7.2lf %S pps\" "; - $graphcmd .= "GPRINT:\"$curif-pps_in6_t_block:AVERAGE:%7.2lf %s pkts\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"out-pass6\t\" "; - $graphcmd .= "GPRINT:\"$curif-out6_pps_block:MAX:%7.2lf %s pps\" "; - $graphcmd .= "GPRINT:\"$curif-out6_pps_block:AVERAGE:%7.2lf %S pps\" "; - $graphcmd .= "GPRINT:\"$curif-out6_pps_block:LAST:%7.2lf %S pps\" "; - $graphcmd .= "GPRINT:\"$curif-pps_out6_t_block:AVERAGE:%7.2lf %s pkts\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t\t\t\t\t\t\t\t\t\t\t\t" . strftime('%b %d %H\:%M\:%S %Y') . "\" "; -} elseif ((strstr($curdatabase, "-wireless.rrd")) && (file_exists("$rrddbpath$curdatabase"))) { - /* define graphcmd for packets stats */ - $graphcmd = "$rrdtool graph " . escapeshellarg("{$rrdtmppath}{$curdatabase}-{$curgraph}.png") . " "; - $graphcmd .= "--start $start --end $end --step $step "; - $graphcmd .= "--vertical-label \"snr/channel/rate\" "; - $graphcmd .= "--color SHADEA#eeeeee --color SHADEB#eeeeee "; - $graphcmd .= "--title \"" . php_uname('n') . " - {$prettydb} - {$hperiod} - {$havg} average\" "; - $graphcmd .= "--height 200 --width 620 "; - $graphcmd .= "DEF:\"$curif-snr=$rrddbpath$curdatabase:snr:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"$curif-rate=$rrddbpath$curdatabase:rate:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"$curif-channel=$rrddbpath$curdatabase:channel:AVERAGE:step=$step\" "; - $graphcmd .= "LINE2:\"$curif-snr#{$colorwireless[0]}:$curif-snr\" "; - $graphcmd .= "LINE2:\"$curif-rate#{$colorwireless[1]}:$curif-rate\" "; - $graphcmd .= "LINE2:\"$curif-channel#{$colorwireless[2]}:$curif-channel\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t maximum\t\t average\t current\\n\" "; - $graphcmd .= "COMMENT:\"SNR\t\t\" "; - $graphcmd .= "GPRINT:\"$curif-snr:MAX:%7.2lf dBi \" "; - $graphcmd .= "GPRINT:\"$curif-snr:AVERAGE:%7.2lf dBi \" "; - $graphcmd .= "GPRINT:\"$curif-snr:LAST:%7.2lf dBi\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"RATE\t\t\" "; - $graphcmd .= "GPRINT:\"$curif-rate:MAX:%7.2lf Mb \" "; - $graphcmd .= "GPRINT:\"$curif-rate:AVERAGE:%7.2lf Mb \" "; - $graphcmd .= "GPRINT:\"$curif-rate:LAST:%7.2lf Mb\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"Channel\t\" "; - $graphcmd .= "GPRINT:\"$curif-channel:MAX:%7.2lf \" "; - $graphcmd .= "GPRINT:\"$curif-channel:AVERAGE:%7.2lf \" "; - $graphcmd .= "GPRINT:\"$curif-channel:LAST:%7.2lf\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t\t\t\t\t\t\t\t\t\t\t\t" . strftime('%b %d %H\:%M\:%S %Y') . "\" "; -} elseif ((strstr($curdatabase, "-vpnusers.rrd")) && (file_exists("$rrddbpath$curdatabase"))) { - /* define graphcmd for vpn users stats */ - $graphcmd = "$rrdtool graph " . escapeshellarg("{$rrdtmppath}{$curdatabase}-{$curgraph}.png") . " "; - $graphcmd .= "--start $start --end $end --step $step "; - $graphcmd .= "--vertical-label \"users\" "; - $graphcmd .= "--color SHADEA#eeeeee --color SHADEB#eeeeee "; - $graphcmd .= "--title \"" . php_uname('n') . " - {$prettydb} - {$hperiod} - {$havg} average\" "; - $graphcmd .= "--height 200 --width 620 "; - $graphcmd .= "DEF:\"$curif-users=$rrddbpath$curdatabase:users:AVERAGE:step=$step\" "; - $graphcmd .= "LINE2:\"$curif-users#{$colorvpnusers[0]}:$curif-users\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t\t maximum\t\t average\t current\\n\" "; - $graphcmd .= "COMMENT:\"Users Online\t\" "; - $graphcmd .= "GPRINT:\"$curif-users:MAX:%7.2lf \" "; - $graphcmd .= "GPRINT:\"$curif-users:AVERAGE:%7.2lf \" "; - $graphcmd .= "GPRINT:\"$curif-users:LAST:%7.2lf \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t\t\t\t\t\t\t\t\t\t\t\t" . strftime('%b %d %H\:%M\:%S %Y') . "\" "; -} elseif ((strstr($curdatabase, "-states.rrd")) && (file_exists("$rrddbpath$curdatabase"))) { - /* define graphcmd for states stats */ - $graphcmd = "$rrdtool graph " . escapeshellarg("{$rrdtmppath}{$curdatabase}-{$curgraph}.png") . " "; - $graphcmd .= "--start -$seconds -e -$average --step $step "; - $graphcmd .= "--vertical-label \"states, ip\" "; - $graphcmd .= "--color SHADEA#eeeeee --color SHADEB#eeeeee "; - $graphcmd .= "--title \"" . php_uname('n') . " - {$prettydb} - {$hperiod} - {$havg} average\" "; - $graphcmd .= "--height 200 --width 620 "; - $graphcmd .= "DEF:\"$curif-pfrate=$rrddbpath$curdatabase:pfrate:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"$curif-pfstates=$rrddbpath$curdatabase:pfstates:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"$curif-pfnat=$rrddbpath$curdatabase:pfnat:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"$curif-srcip=$rrddbpath$curdatabase:srcip:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"$curif-dstip=$rrddbpath$curdatabase:dstip:AVERAGE:step=$step\" "; - $graphcmd .= "CDEF:\"$curif-pfrate_t=$curif-pfrate,0,1000000,LIMIT,UN,0,$curif-pfrate,IF,$seconds,*\" "; - $graphcmd .= "LINE1:\"$curif-pfrate#{$colorstates[0]}:$curif-pfrate\" "; - $graphcmd .= "LINE1:\"$curif-pfstates#{$colorstates[1]}:$curif-pfstates\" "; - $graphcmd .= "LINE1:\"$curif-pfnat#{$colorstates[2]}:$curif-pfnat\" "; - $graphcmd .= "LINE1:\"$curif-srcip#{$colorstates[3]}:$curif-srcip\" "; - $graphcmd .= "LINE1:\"$curif-dstip#{$colorstates[4]}:$curif-dstip\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t minimum average maximum current period\\n\" "; - $graphcmd .= "COMMENT:\"state changes\" "; - $graphcmd .= "GPRINT:\"$curif-pfrate:MIN:%7.2lf %s cps\" "; - $graphcmd .= "GPRINT:\"$curif-pfrate:AVERAGE:%7.2lf %s cps\" "; - $graphcmd .= "GPRINT:\"$curif-pfrate:MAX:%7.2lf %s cps\" "; - $graphcmd .= "GPRINT:\"$curif-pfrate:LAST:%7.2lf %S cps\" "; - $graphcmd .= "GPRINT:\"$curif-pfrate_t:AVERAGE:%7.2lf %s chg\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"filter states\" "; - $graphcmd .= "GPRINT:\"$curif-pfstates:MIN:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"$curif-pfstates:AVERAGE:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"$curif-pfstates:MAX:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"$curif-pfstates:LAST:%7.2lf %s \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"nat states \" "; - $graphcmd .= "GPRINT:\"$curif-pfnat:MIN:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"$curif-pfnat:AVERAGE:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"$curif-pfnat:MAX:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"$curif-pfnat:LAST:%7.2lf %s \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"Source addr. \" "; - $graphcmd .= "GPRINT:\"$curif-srcip:MIN:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"$curif-srcip:AVERAGE:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"$curif-srcip:MAX:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"$curif-srcip:LAST:%7.2lf %s \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"Dest. addr. \" "; - $graphcmd .= "GPRINT:\"$curif-dstip:MIN:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"$curif-dstip:AVERAGE:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"$curif-dstip:MAX:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"$curif-dstip:LAST:%7.2lf %s \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t\t\t\t\t\t\t\t\t\t\t\t" . strftime('%b %d %H\:%M\:%S %Y') . "\" "; -} elseif ((strstr($curdatabase, "-processor.rrd")) && (file_exists("$rrddbpath$curdatabase"))) { - /* define graphcmd for processor stats */ - $graphcmd = "$rrdtool graph " . escapeshellarg("{$rrdtmppath}{$curdatabase}-{$curgraph}.png") . " "; - $graphcmd .= "--start $start --end $end --step $step "; - $graphcmd .= "--vertical-label \"utilization, number\" "; - $graphcmd .= "--color SHADEA#eeeeee --color SHADEB#eeeeee "; - $graphcmd .= "--title \"" . php_uname('n') . " - {$prettydb} - {$hperiod} - {$havg} average\" "; - $graphcmd .= "--height 200 --width 620 "; - $graphcmd .= "DEF:\"user=$rrddbpath$curdatabase:user:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"nice=$rrddbpath$curdatabase:nice:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"system=$rrddbpath$curdatabase:system:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"interrupt=$rrddbpath$curdatabase:interrupt:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"processes=$rrddbpath$curdatabase:processes:AVERAGE:step=$step\" "; - $graphcmd .= "AREA:\"user#{$colorprocessor[0]}:user\" "; - $graphcmd .= "AREA:\"nice#{$colorprocessor[1]}:nice:STACK\" "; - $graphcmd .= "AREA:\"system#{$colorprocessor[2]}:system:STACK\" "; - $graphcmd .= "AREA:\"interrupt#{$colorprocessor[3]}:interrupt:STACK\" "; - $graphcmd .= "LINE2:\"processes#{$colorprocessor[4]}:processes\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t minimum average maximum current\\n\" "; - $graphcmd .= "COMMENT:\"User util. \" "; - $graphcmd .= "GPRINT:\"user:MIN:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"user:AVERAGE:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"user:MAX:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"user:LAST:%7.2lf %S \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"Nice util. \" "; - $graphcmd .= "GPRINT:\"nice:MIN:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"nice:AVERAGE:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"nice:MAX:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"nice:LAST:%7.2lf %s \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"System util. \" "; - $graphcmd .= "GPRINT:\"system:MIN:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"system:AVERAGE:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"system:MAX:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"system:LAST:%7.2lf %s \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"Interrupt \" "; - $graphcmd .= "GPRINT:\"interrupt:MIN:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"interrupt:AVERAGE:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"interrupt:MAX:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"interrupt:LAST:%7.2lf %s \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"Processes \" "; - $graphcmd .= "GPRINT:\"processes:MIN:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"processes:AVERAGE:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"processes:MAX:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"processes:LAST:%7.2lf %s \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t\t\t\t\t\t\t\t\t\t\t\t" . strftime('%b %d %H\:%M\:%S %Y') . "\" "; -} elseif ((strstr($curdatabase, "-memory.rrd")) && (file_exists("$rrddbpath$curdatabase"))) { - /* define graphcmd for memory usage stats */ - $graphcmd = "$rrdtool graph " . escapeshellarg("{$rrdtmppath}{$curdatabase}-{$curgraph}.png") . " "; - $graphcmd .= "--start $start --end $end --step $step "; - $graphcmd .= "--vertical-label \"utilization, percent\" "; - $graphcmd .= "--color SHADEA#eeeeee --color SHADEB#eeeeee "; - $graphcmd .= "--title \"" . php_uname('n') . " - {$prettydb} - {$hperiod} - {$havg} average\" "; - $graphcmd .= "--height 200 --width 620 "; - $graphcmd .= "DEF:\"active=$rrddbpath$curdatabase:active:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"inactive=$rrddbpath$curdatabase:inactive:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"free=$rrddbpath$curdatabase:free:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"cache=$rrddbpath$curdatabase:cache:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"wire=$rrddbpath$curdatabase:wire:AVERAGE:step=$step\" "; - $graphcmd .= "LINE2:\"active#{$colormemory[0]}:active\" "; - $graphcmd .= "LINE2:\"inactive#{$colormemory[1]}:inactive\" "; - $graphcmd .= "LINE2:\"free#{$colormemory[2]}:free\" "; - $graphcmd .= "LINE2:\"cache#{$colormemory[3]}:cache\" "; - $graphcmd .= "LINE2:\"wire#{$colormemory[4]}:wire\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t minimum average maximum current\\n\" "; - $graphcmd .= "COMMENT:\"Active. \" "; - $graphcmd .= "GPRINT:\"active:MIN:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"active:AVERAGE:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"active:MAX:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"active:LAST:%7.2lf %S \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"Inactive. \" "; - $graphcmd .= "GPRINT:\"inactive:MIN:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"inactive:AVERAGE:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"inactive:MAX:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"inactive:LAST:%7.2lf %S \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"Free. \" "; - $graphcmd .= "GPRINT:\"free:MIN:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"free:AVERAGE:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"free:MAX:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"free:LAST:%7.2lf %S \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"Cached. \" "; - $graphcmd .= "GPRINT:\"cache:MIN:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"cache:AVERAGE:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"cache:MAX:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"cache:LAST:%7.2lf %S \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"Wired. \" "; - $graphcmd .= "GPRINT:\"wire:MIN:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"wire:AVERAGE:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"wire:MAX:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"wire:LAST:%7.2lf %S \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t\t\t\t\t\t\t\t\t\t\t\t" . strftime('%b %d %H\:%M\:%S %Y') . "\" "; -} elseif ((strstr($curdatabase, "-mbuf.rrd")) && (file_exists("$rrddbpath$curdatabase"))) { - /* define graphcmd for mbuf usage stats */ - $graphcmd = "$rrdtool graph " . escapeshellarg("{$rrdtmppath}{$curdatabase}-{$curgraph}.png") . " "; - $graphcmd .= "--start $start --end $end --step $step "; - $graphcmd .= "--vertical-label \"utilization, percent\" "; - $graphcmd .= "--color SHADEA#eeeeee --color SHADEB#eeeeee "; - $graphcmd .= "--title \"" . php_uname('n') . " - {$prettydb} clusters - {$hperiod} - {$havg} average\" "; - $graphcmd .= "--height 200 --width 620 "; - $graphcmd .= "DEF:\"current=$rrddbpath$curdatabase:current:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"cache=$rrddbpath$curdatabase:cache:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"total=$rrddbpath$curdatabase:total:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"max=$rrddbpath$curdatabase:max:AVERAGE:step=$step\" "; - $graphcmd .= "LINE2:\"current#{$colormbuf[0]}:current\" "; - $graphcmd .= "LINE2:\"cache#{$colormbuf[1]}:cache\" "; - $graphcmd .= "LINE2:\"total#{$colormbuf[2]}:total\" "; - $graphcmd .= "LINE2:\"max#{$colormbuf[3]}:max\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t minimum average maximum current\\n\" "; - $graphcmd .= "COMMENT:\"Current. \" "; - $graphcmd .= "GPRINT:\"current:MIN:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"current:AVERAGE:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"current:MAX:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"current:LAST:%7.2lf %S \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"Cache. \" "; - $graphcmd .= "GPRINT:\"cache:MIN:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"cache:AVERAGE:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"cache:MAX:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"cache:LAST:%7.2lf %S \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"Total. \" "; - $graphcmd .= "GPRINT:\"total:MIN:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"total:AVERAGE:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"total:MAX:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"total:LAST:%7.2lf %S \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"Max. \" "; - $graphcmd .= "GPRINT:\"max:MIN:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"max:AVERAGE:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"max:MAX:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"max:LAST:%7.2lf %S \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t\t\t\t\t\t\t\t\t\t\t\t" . strftime('%b %d %H\:%M\:%S %Y') . "\" "; -} elseif ((strstr($curdatabase, "-queues.rrd")) && (file_exists("$rrddbpath$curdatabase"))) { - /* define graphcmd for queue stats */ - $graphcmd = "$rrdtool graph " . escapeshellarg("{$rrdtmppath}{$curdatabase}-{$curgraph}.png") . " "; - $graphcmd .= "--start $start --end $end --step $step "; - $graphcmd .= "--vertical-label \"bits/sec\" "; - $graphcmd .= "--color SHADEA#eeeeee --color SHADEB#eeeeee "; - $graphcmd .= "--title \"" . php_uname('n') . " - {$prettydb} - {$hperiod} - {$havg} average\" "; - $graphcmd .= "--height 200 --width 620 "; - if ($altq) { - $a_queues =& $altq->get_queue_list(); - $t = 0; - } else { - $a_queues = array(); - $i = 0; - $t = 0; - } - foreach ($a_queues as $name => $q) { - $color = "$colorqueuesup[$t]"; - if ($t > 0) { - $stack = ":STACK"; - } - $graphcmd .= "DEF:\"$name=$rrddbpath$curdatabase:$name:AVERAGE:step=$step\" "; - $graphcmd .= "CDEF:\"$name-bytes_out=$name,0,$speedlimit,LIMIT,UN,0,$name,IF\" "; - $graphcmd .= "CDEF:\"$name-bits_out=$name-bytes_out,8,*\" "; - $graphcmd .= "$AREA:\"$name-bits_out#${color}:$name$stack\" "; - $t++; - if ($t > 7) { - $t = 0; - } - } - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t\t\t\t\t\t\t\t\t\t\t\t" . strftime('%b %d %H\:%M\:%S %Y') . "\" "; -} elseif ((strstr($curdatabase, "-queuedrops.rrd")) && (file_exists("$rrddbpath$curdatabase"))) { - /* define graphcmd for queuedrop stats */ - $graphcmd = "$rrdtool graph " . escapeshellarg("{$rrdtmppath}{$curdatabase}-{$curgraph}.png") . " "; - $graphcmd .= "--start $start --end $end --step $step "; - $graphcmd .= "--vertical-label \"drops / sec\" "; - $graphcmd .= "--color SHADEA#eeeeee --color SHADEB#eeeeee "; - $graphcmd .= "--title \"" . php_uname('n') . " - {$prettydb} - {$hperiod} - {$havg} average\" "; - $graphcmd .= "--height 200 --width 620 "; - if ($altq) { - $a_queues =& $altq->get_queue_list(); - $t = 0; - } else { - $a_queues = array(); - $i = 0; - $t = 0; - } - foreach ($a_queues as $name => $q) { - $color = "$colorqueuesdropup[$t]"; - if ($t > 0) { - $stack = ":STACK"; - } - $graphcmd .= "DEF:\"$name=$rrddbpath$curdatabase:$name:AVERAGE:step=$step\" "; - $graphcmd .= "CDEF:\"$name-bytes_out=$name,0,$speedlimit,LIMIT,UN,0,$name,IF\" "; - $graphcmd .= "CDEF:\"$name-bits_out=$name-bytes_out,8,*\" "; - $graphcmd .= "CDEF:\"$name-bits_out_neg=$name-bits_out,$multiplier,*\" "; - $graphcmd .= "$AREA:\"$name-bits_out_neg#${color}:$name$stack\" "; - $t++; - if ($t > 7) { - $t = 0; - } - } - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t\t\t\t\t\t\t\t\t\t\t\t" . strftime('%b %d %H\:%M\:%S %Y') . "\" "; -} elseif ((strstr($curdatabase, "-quality.rrd")) && (file_exists("$rrddbpath$curdatabase"))) { - /* make a link quality graphcmd */ - $graphcmd = "$rrdtool graph " . escapeshellarg("{$rrdtmppath}{$curdatabase}-{$curgraph}.png") . " \\ - --start $start --end $end --step $step \\ - --title \"" . php_uname('n') . " - {$prettydb} - {$hperiod} - {$havg} average\" \\ - --color SHADEA#eeeeee --color SHADEB#eeeeee \\ - --vertical-label \"ms / %\" \\ - --height 200 --width 620 \\ - --lower-limit 0 \\ - DEF:delayraw=$rrddbpath$curdatabase:delay:AVERAGE:step=$step \\ - DEF:stddevraw=$rrddbpath$curdatabase:stddev:AVERAGE:step=$step \\ - DEF:loss=$rrddbpath$curdatabase:loss:AVERAGE:step=$step \\ - \"CDEF:delay=delayraw,1000,*\" \\ - \"CDEF:stddev=stddevraw,1000,*\" \\ - \"CDEF:loss10=loss,$multiplier,*\" \\ - \"CDEF:r0=delay,20,MIN\" \\ - \"CDEF:r1=delay,60,MIN\" \\ - \"CDEF:r2=delay,180,MIN\" \\ - \"CDEF:r3=delay,420,MIN\" \\ - COMMENT:\"\t\t\t\t\tDelay\t\t\t\tStddev\t\t\t Loss\\n\" \\ - AREA:delay#$colorqualityrtt[0]:\"> 420 ms\" \\ - GPRINT:delay:MIN:\"\t\t Min\\: %7.2lf ms\" \\ - GPRINT:stddev:MIN:\"\t Min\\: %7.2lf ms\" \\ - GPRINT:loss:MIN:\"\t Min\\: %4.1lf %%\\n\" \\ - AREA:r3#$colorqualityrtt[1]:\"180-420 ms\" \\ - GPRINT:delay:AVERAGE:\"\t\t Avg\\: %7.2lf ms\" \\ - GPRINT:stddev:AVERAGE:\"\t Avg\\: %7.2lf ms\" \\ - GPRINT:loss:AVERAGE:\"\t Avg\\: %4.1lf %%\\n\" \\ - AREA:r2#$colorqualityrtt[2]:\"60-180 ms\" \\ - GPRINT:delay:MAX:\"\t\t Max\\: %7.2lf ms\" \\ - GPRINT:stddev:MAX:\"\t Max\\: %7.2lf ms\" \\ - GPRINT:loss:MAX:\"\t Max\\: %4.1lf %%\\n\" \\ - AREA:r1#$colorqualityrtt[3]:\"20-60 ms\\n\" \\ - AREA:r0#$colorqualityrtt[4]:\"< 20 ms\" \\ - GPRINT:delay:LAST:\"\t\tLast\\: %7.2lf ms\" \\ - GPRINT:stddev:LAST:\"\tLast\\: %7.2lf ms\" \\ - GPRINT:loss:LAST:\"\tLast\: %4.1lf %%\\n\" \\ - AREA:loss10#$colorqualityloss:\"Packet loss\\n\" \\ - LINE1:delay#$colorqualityrtt[5]:\"Delay average\\n\" \\ - LINE1:stddev#$colorqualitystddev:\"Stddev average\\n\" \\ - COMMENT:\"\t\t\t\t\t\t\t\t\t\t\t\t\t" . strftime('%b %d %H\:%M\:%S %Y') . "\""; -} elseif ((strstr($curdatabase, "spamd.rrd")) && (file_exists("$rrddbpath$curdatabase"))) { - /* graph a spamd statistics graph */ - $graphcmd = "$rrdtool graph " . escapeshellarg("{$rrdtmppath}{$curdatabase}-{$curgraph}.png") . " \\ - --start $start --end $end --step $step \\ - --title \"" . php_uname('n') . " - {$prettydb} - {$hperiod} - {$havg} average\" \\ - --color SHADEA#eeeeee --color SHADEB#eeeeee \\ - --vertical-label=\"Conn / Time, sec.\" \\ - --height 200 --width 620 --no-gridfit \\ - --lower-limit 0 \\ - DEF:consmin=$rrddbpath$curdatabase:conn:MIN:step=$step \\ - DEF:consavg=$rrddbpath$curdatabase:conn:AVERAGE:step=$step \\ - DEF:consmax=$rrddbpath$curdatabase:conn:MAX:step=$step \\ - DEF:timemin=$rrddbpath$curdatabase:time:MIN:step=$step \\ - DEF:timeavg=$rrddbpath$curdatabase:time:AVERAGE:step=$step \\ - DEF:timemax=$rrddbpath$curdatabase:time:MAX:step=$step \\ - \"CDEF:timeminadj=timemin,0,86400,LIMIT,UN,0,timemin,IF\" \\ - \"CDEF:timeavgadj=timeavg,0,86400,LIMIT,UN,0,timeavg,IF\" \\ - \"CDEF:timemaxadj=timemax,0,86400,LIMIT,UN,0,timemax,IF\" \\ - \"CDEF:t1=timeminadj,timeavgadj,+,2,/,timeminadj,-\" \\ - \"CDEF:t2=timeavgadj,timemaxadj,+,2,/,timeminadj,-,t1,-\" \\ - \"CDEF:t3=timemaxadj,timeminadj,-,t1,-,t2,-\" \\ - AREA:timeminadj \\ - AREA:t1#$colorspamdtime[0]::STACK \\ - AREA:t2#$colorspamdtime[1]::STACK \\ - AREA:t3#$colorspamdtime[2]::STACK \\ - LINE2:timeavgadj#$colorspamdtime[3]:\"Time \" \\ - GPRINT:timeminadj:MIN:\"Min\\:%6.2lf\\t\" \\ - GPRINT:timeavgadj:AVERAGE:\"Avg\\:%6.2lf\\t\" \\ - GPRINT:timemaxadj:MAX:\"Max\\:%6.2lf\\n\" \\ - AREA:consmax#$colorspamdconn[0] \\ - AREA:consmin#$colorspamdconn[1] \\ - LINE1:consmin#$colorspamdconn[2] \\ - LINE1:consmax#$colorspamdconn[3] \\ - LINE1:consavg#$colorspamdconn[4]:\"Cons \" \\ - GPRINT:consmin:MIN:\"Min\\:%6.2lf\\t\" \\ - GPRINT:consavg:AVERAGE:\"Avg\\:%6.2lf\\t\" \\ - GPRINT:consmax:MAX:\"Max\\:%6.2lf\\n\" \\ - COMMENT:\"\t\t\t\t\t\t\t\t\t\t\t\t\t" . strftime('%b %d %H\:%M\:%S %Y') . "\" "; -} elseif ((strstr($curdatabase, "-cellular.rrd")) && (file_exists("$rrddbpath$curdatabase"))) { - $graphcmd = "$rrdtool graph " . escapeshellarg("{$rrdtmppath}{$curdatabase}-{$curgraph}.png") . " "; - $graphcmd .= "--start $start --end $end --step $step "; - $graphcmd .= "--vertical-label \"signal\" "; - $graphcmd .= "--color SHADEA#eeeeee --color SHADEB#eeeeee "; - $graphcmd .= "--title \"" . php_uname('n') . " - {$prettydb} - {$hperiod} - {$havg} average\" "; - $graphcmd .= "--height 200 --width 620 "; - $graphcmd .= "DEF:\"$curif-rssi=$rrddbpath$curdatabase:rssi:AVERAGE:step=$step\" "; - $graphcmd .= "LINE2:\"$curif-rssi#{$colorwireless[0]}:$curif-rssi\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t maximum\t\t average\t current\\n\" "; - $graphcmd .= "COMMENT:\"RSSI\t\t\" "; - $graphcmd .= "GPRINT:\"$curif-rssi:MAX:%7.2lf \" "; - $graphcmd .= "GPRINT:\"$curif-rssi:AVERAGE:%7.2lf \" "; - $graphcmd .= "GPRINT:\"$curif-rssi:LAST:%7.2lf \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t\t\t\t\t\t\t\t\t\t\t\t" . strftime('%b %d %H\:%M\:%S %Y') . "\" "; -} elseif ((strstr($curdatabase, "-loggedin.rrd")) && (file_exists("$rrddbpath$curdatabase"))) { - /* define graphcmd for online Captive Portal users stats */ - $graphcmd = "$rrdtool graph " . escapeshellarg("{$rrdtmppath}{$curdatabase}-{$curgraph}.png") . " "; - $graphcmd .= "--start $start --end $end --step $step "; - $graphcmd .= "--vertical-label \"Captive Portal Users\" "; - $graphcmd .= "--color SHADEA#eeeeee --color SHADEB#eeeeee "; - $graphcmd .= "--base=1000 "; - $graphcmd .= "--lower-limit=0 "; - $graphcmd .= "--slope-mode "; - $graphcmd .= "--title \"" . php_uname('n') . " - {$prettydb} - {$hperiod} - {$havg} average\" "; - $graphcmd .= "--height 200 --width 620 "; - $graphcmd .= "DEF:\"$curif-loggedinusers=$rrddbpath$curdatabase:loggedinusers:AVERAGE:step=$step\" "; - $graphcmd .= "CDEF:\"$curif-totalusers_t=PREV,UN,0,PREV,IF,$curif-loggedinusers,+\" "; - $graphcmd .= "CDEF:\"$curif-totalusers_d=$curif-totalusers_t,FLOOR\" "; - $graphcmd .= "AREA:\"$curif-totalusers_d#{$colorcaptiveportalusers[0]}:Total logged in users\" "; - $graphcmd .= "GPRINT:\"$curif-totalusers_d:MAX:%8.0lf \\n\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t\t\t\t\t\t\t\t\t\t\t\t" . strftime('%b %d %H\:%M\:%S %Y') . "\" "; -} elseif ((strstr($curdatabase, "-concurrent.rrd")) && (file_exists("$rrddbpath$curdatabase"))) { - /* define graphcmd for online Captive Portal users stats */ - $graphcmd = "$rrdtool graph " . escapeshellarg("{$rrdtmppath}{$curdatabase}-{$curgraph}.png") . " "; - $graphcmd .= "--start $start --end $end --step $step "; - $graphcmd .= "--vertical-label \"Captive Portal Users\" "; - $graphcmd .= "--color SHADEA#eeeeee --color SHADEB#eeeeee "; - $graphcmd .= "--title \"" . php_uname('n') . " - {$prettydb} - {$hperiod} - {$havg} average\" "; - $graphcmd .= "--base=1000 "; - $graphcmd .= "--lower-limit=0 "; - $graphcmd .= "--slope-mode "; - $graphcmd .= "--height 200 --width 620 "; - $graphcmd .= "DEF:\"$curif-concurrentusers=$rrddbpath$curdatabase:concurrentusers:AVERAGE:step=$step\" "; - $graphcmd .= "AREA:\"$curif-concurrentusers#{$colorcaptiveportalusers[0]}:Concurrent Users\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t\t current\t\t average\t maximum\\n\" "; - $graphcmd .= "COMMENT:\"Users Online\t\" "; - $graphcmd .= "GPRINT:\"$curif-concurrentusers:LAST:%8.0lf \" "; - $graphcmd .= "GPRINT:\"$curif-concurrentusers:AVERAGE:%8.0lf \" "; - $graphcmd .= "GPRINT:\"$curif-concurrentusers:MAX:%8.0lf \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t\t\t\t\t\t\t\t\t\t\t\t" . strftime('%b %d %H\:%M\:%S %Y') . "\" "; -} elseif ((strstr($curdatabase, "ntpd.rrd")) && (file_exists("$rrddbpath$curdatabase"))) { - /* define graphcmd for ntpd (was: mbuf) usage stats */ - $graphcmd = "$rrdtool graph " . escapeshellarg("{$rrdtmppath}{$curdatabase}-{$curgraph}.png") . " "; - $graphcmd .= "--start $start --end $end --step $step "; - $graphcmd .= "--vertical-label \"time\" "; - $graphcmd .= "--color SHADEA#eeeeee --color SHADEB#eeeeee "; - $graphcmd .= "--title \"" . php_uname('n') . " - {$prettydb} - {$hperiod} - {$havg} average\" "; - $graphcmd .= "--height 200 --width 620 "; - $graphcmd .= "DEF:\"offset=$rrddbpath$curdatabase:offset:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"sjit=$rrddbpath$curdatabase:sjit:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"cjit=$rrddbpath$curdatabase:cjit:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"wander=$rrddbpath$curdatabase:wander:AVERAGE:step=$step\" "; - $graphcmd .= "LINE2:\"offset#{$colorntpd[0]}:offset\" "; - $graphcmd .= "LINE2:\"sjit#{$colorntpd[1]}:sjit\" "; - $graphcmd .= "LINE2:\"cjit#{$colorntpd[2]}:cjit\" "; - $graphcmd .= "LINE2:\"wander#{$colorntpd[3]}:wander\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t minimum average maximum current\\n\" "; - $graphcmd .= "COMMENT:\"Offset \" "; - $graphcmd .= "GPRINT:\"offset:MIN:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"offset:AVERAGE:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"offset:MAX:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"offset:LAST:%7.2lf %S \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"System jitter \" "; - $graphcmd .= "GPRINT:\"sjit:MIN:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"sjit:AVERAGE:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"sjit:MAX:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"sjit:LAST:%7.2lf %S \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"Clock jitter \" "; - $graphcmd .= "GPRINT:\"cjit:MIN:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"cjit:AVERAGE:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"cjit:MAX:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"cjit:LAST:%7.2lf %S \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"Clk freq wander\" "; - $graphcmd .= "GPRINT:\"wander:MIN:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"wander:AVERAGE:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"wander:MAX:%7.2lf %s \" "; - $graphcmd .= "GPRINT:\"wander:LAST:%7.2lf %S \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t\t\t\t\t\t\t\t\t\t\t\t" . strftime('%b %d %H\:%M\:%S %Y') . "\" "; -} elseif ((strstr($curdatabase, "-dhcpd.rrd")) && (file_exists("$rrddbpath$curdatabase"))) { - /* define graphcmd for dhcpd stats */ - $graphcmd = "$rrdtool graph " . escapeshellarg("{$rrdtmppath}{$curdatabase}-{$curgraph}.png") . " "; - $graphcmd .= "--start $start --end $end --step $step "; - $graphcmd .= "--vertical-label \"DHCP Leases\" "; - $graphcmd .= "--color SHADEA#eeeeee --color SHADEB#eeeeee "; - $graphcmd .= "--title \"" . php_uname('n') . " - {$prettydb} - {$hperiod} - {$havg} average\" "; - $graphcmd .= "--height 200 --width 620 "; - $graphcmd .= "DEF:\"$curif-leases=$rrddbpath$curdatabase:leases:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"$curif-staticleases=$rrddbpath$curdatabase:staticleases:AVERAGE:step=$step\" "; - $graphcmd .= "DEF:\"$curif-dhcprange=$rrddbpath$curdatabase:dhcprange:AVERAGE:step=$step\" "; - $graphcmd .= "AREA:\"$curif-leases#{$colordhcpd[0]}:Active Leases\" "; - $graphcmd .= "LINE2:\"$curif-staticleases#{$colordhcpd[1]}:Static Leases\" "; - $graphcmd .= "LINE1:\"$curif-dhcprange#{$colordhcpd[2]}:DHCP Range\" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t\t current\t\t average\t\tmaximum\\n\" "; - $graphcmd .= "COMMENT:\"Active Leases\t\" "; - $graphcmd .= "GPRINT:\"$curif-leases:LAST:%8.0lf \" "; - $graphcmd .= "GPRINT:\"$curif-leases:AVERAGE:%8.0lf \" "; - $graphcmd .= "GPRINT:\"$curif-leases:MAX:%8.0lf \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"Static Leases\t\" "; - $graphcmd .= "GPRINT:\"$curif-staticleases:LAST:%8.0lf \" "; - $graphcmd .= "GPRINT:\"$curif-staticleases:AVERAGE:%8.0lf \" "; - $graphcmd .= "GPRINT:\"$curif-staticleases:MAX:%8.0lf \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"DHCP Range\t\t\" "; - $graphcmd .= "GPRINT:\"$curif-dhcprange:LAST:%8.0lf \" "; - $graphcmd .= "GPRINT:\"$curif-dhcprange:AVERAGE:%8.0lf \" "; - $graphcmd .= "GPRINT:\"$curif-dhcprange:MAX:%8.0lf \" "; - $graphcmd .= "COMMENT:\"\\n\" "; - $graphcmd .= "COMMENT:\"\t\t\t\t\t\t\t\t\t\t\t\t\t" . strftime('%b %d %H\:%M\:%S %Y') . "\" "; -} else { - $data = false; - log_error(sprintf(gettext("Sorry we do not have data to graph for %s"), $curdatabase)); -} - -/* check modification time to see if we need to generate image */ -if (file_exists("$rrdtmppath$curdatabase-$curgraph.png")) { - if ((time() - filemtime("$rrdtmppath$curdatabase-$curgraph.png")) >= 15) { - if ($data) { - $_gb = exec("$graphcmd 2>&1", $graphcmdoutput, $graphcmdreturn); - $graphcmdoutput = implode(" ", $graphcmdoutput) . $graphcmd; - flush(); - usleep(500); - } - } -} else { - if ($data) { - $_gb = exec("$graphcmd 2>&1", $graphcmdoutput, $graphcmdreturn); - $graphcmdoutput = implode(" ", $graphcmdoutput) . $graphcmd; - flush(); - usleep(500); - } -} -if (($graphcmdreturn <> 0) || (!$data)) { - log_error(sprintf(gettext('Failed to create graph with error code %1$s, the error is: %2$s'), $graphcmdreturn, $graphcmdoutput)); - if (strstr($curdatabase, "queues")) { - log_error(sprintf(gettext("failed to create graph from %s%s, removing database"), $rrddbpath, $curdatabase)); - unlink_if_exists($rrddbpath . $curif . $queues); - flush(); - usleep(500); - enable_rrd_graphing(); - } - if (strstr($curdatabase, "queuesdrop")) { - log_error(sprintf(gettext("failed to create graph from %s%s, removing database"), $rrddbpath, $curdatabase)); - unlink_if_exists($rrddbpath . $curdatabase); - flush(); - usleep(500); - enable_rrd_graphing(); - } - header("Content-type: image/png"); - header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); - header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); - header("Cache-Control: no-cache, no-store, must-revalidate"); - header("Pragma: no-cache"); - $input_errors[] = gettext("There has been an error in rendering the graph. Please check your system logs."); - print_input_errors($input_errors); -} else { - $file = "$rrdtmppath$curdatabase-$curgraph.png"; - if (file_exists("$file")) { - header("Content-type: image/png"); - header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); - header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); - header("Cache-Control: no-cache, no-store, must-revalidate"); - header("Pragma: no-cache"); - readfile($file); - } -} - -?> diff --git a/src/usr/local/www/status_rrd_graph_settings.php b/src/usr/local/www/status_rrd_graph_settings.php deleted file mode 100644 index 3b8243e..0000000 --- a/src/usr/local/www/status_rrd_graph_settings.php +++ /dev/null @@ -1,234 +0,0 @@ - - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * "This product includes software developed by the pfSense Project - * for use in the pfSense software distribution. (http://www.pfsense.org/). - * - * 4. The names "pfSense" and "pfSense Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * coreteam@pfsense.org. - * - * 5. Products derived from this software may not be called "pfSense" - * nor may "pfSense" appear in their names without prior written - * permission of the Electric Sheep Fencing, LLC. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * - * "This product includes software developed by the pfSense Project - * for use in the pfSense software distribution (http://www.pfsense.org/). - * - * THIS SOFTWARE IS PROVIDED BY THE pfSense PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE pfSense PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * - * ==================================================================== - * - */ - -##|+PRIV -##|*IDENT=page-status-rrdgraph-settings -##|*NAME=Status: RRD Graphs: Settings -##|*DESCR=Allow access to the 'Status: RRD Graphs: Settings' page. -##|*MATCH=status_rrd_graph_settings.php* -##|-PRIV - -require("guiconfig.inc"); -require_once("filter.inc"); -require("shaper.inc"); -require_once("rrd.inc"); - -$pconfig['enable'] = isset($config['rrd']['enable']); -$pconfig['category'] = $config['rrd']['category']; -$pconfig['style'] = $config['rrd']['style']; -$pconfig['period'] = $config['rrd']['period']; - -$curcat = "settings"; -$categories = array('system' => gettext("System"), - 'traffic' => gettext("Traffic"), - 'packets' => gettext("Packets"), - 'quality' => gettext("Quality"), - 'queues' => gettext("Queues"), - 'captiveportal' => gettext("Captive Portal")); - -if (isset($config['ntpd']['statsgraph'])) { - $categories['ntpd'] = gettext("NTP"); -} - -$styles = array('inverse' => gettext("Inverse"), - 'absolute' => gettext("Absolute")); -$periods = array("absolute" => gettext("Absolute Timespans"), - "current" => gettext("Current Period"), - "previous" => gettext("Previous Period")); - -if ($_POST['ResetRRD']) { - mwexec('/bin/rm /var/db/rrd/*'); - enable_rrd_graphing(); - $savemsg = gettext("RRD data has been cleared. New RRD files have been generated."); -} elseif ($_POST) { - unset($input_errors); - $pconfig = $_POST; - - if (!$input_errors) { - $config['rrd']['enable'] = $_POST['enable'] ? true : false; - $config['rrd']['category'] = $_POST['category']; - $config['rrd']['style'] = $_POST['style']; - $config['rrd']['period'] = $_POST['period']; - write_config(); - - $retval = 0; - $retval = enable_rrd_graphing(); - $savemsg = get_std_save_message($retval); - } -} - -$here = getcwd(); -$rrddbpath = "/var/db/rrd/"; -chdir($rrddbpath); -$databases = glob('*.rrd'); -chdir($here); // Need to go back home otherwise the 'include/requires fail! - -foreach ($databases as $database) { - if (stristr($database, "wireless")) { - $wireless = true; - } - if (stristr($database, "queues")) { - $queues = true; - } - if (stristr($database, "-cellular") && !empty($config['ppps'])) { - $cellular = true; - } - if (stristr($database, "-vpnusers")) { - $vpnusers = true; - } - if (stristr($database, "captiveportal-") && is_array($config['captiveportal'])) { - $captiveportal = true; - } - if (stristr($database, "ntpd") && isset($config['ntpd']['statsgraph'])) { - $ntpd = true; - } - if (stristr($database, "-dhcpd") && is_array($config['dhcpd'])) { - $dhcpd = true; - } -} - -$pgtitle = array(gettext("Status"), gettext("RRD Graphs"), gettext("Settings")); -include("head.inc"); - -$tab_array[] = array(gettext("System"), ($curcat == "system"), "status_rrd_graph.php?cat=system"); -$tab_array[] = array(gettext("Traffic"), ($curcat == "traffic"), "status_rrd_graph.php?cat=traffic"); -$tab_array[] = array(gettext("Packets"), ($curcat == "packets"), "status_rrd_graph.php?cat=packets"); -$tab_array[] = array(gettext("Quality"), ($curcat == "quality"), "status_rrd_graph.php?cat=quality"); - -if ($queues) { - $tab_array[] = array(gettext("Queues"), ($curcat == "queues"), "status_rrd_graph.php?cat=queues"); - $tab_array[] = array(gettext("QueueDrops"), ($curcat == "queuedrops"), "status_rrd_graph.php?cat=queuedrops"); -} - -if ($wireless) { - $tab_array[] = array(gettext("Wireless"), ($curcat == "wireless"), "status_rrd_graph.php?cat=wireless"); -} - -if ($cellular) { - $tab_array[] = array(gettext("Cellular"), ($curcat == "cellular"), "status_rrd_graph.php?cat=cellular"); -} - -if ($vpnusers) { - $tab_array[] = array(gettext("VPN Users"), ($curcat == "vpnusers"), "status_rrd_graph.php?cat=vpnusers"); -} - -if ($captiveportal) { - $tab_array[] = array(gettext("Captive Portal"), ($curcat == "captiveportal"), "status_rrd_graph.php?cat=captiveportal"); -} - -if ($ntpd) { - $tab_array[] = array(gettext("NTP"), ($curcat == "ntpd"), "status_rrd_graph.php?cat=ntpd"); -} - -if ($dhcpd) { - $tab_array[] = array(gettext("DHCP Server"), ($curcat == "dhcpd"), "status_rrd_graph.php?cat=dhcpd"); -} - -$tab_array[] = array(gettext("Custom"), ($curcat == "custom"), "status_rrd_graph.php?cat=custom"); -$tab_array[] = array(gettext("Settings"), ($curcat == "settings"), "status_rrd_graph_settings.php"); - -display_top_tabs($tab_array); - -if ($input_errors) { - print_input_errors($input_errors); -} - -if ($savemsg) { - print_info_box($savemsg, 'success'); -} - -$form = new Form; - -$section = new Form_Section('Graph Settings'); - -$section->addInput(new Form_Checkbox( - 'enable', - 'RRD Graphs', - 'Enable the RRD Graphing backend', - $pconfig['enable'] -)); - -$section->addInput(new Form_Select( - 'category', - 'Default category', - $pconfig['category'], - $categories -)); - -$section->addInput(new Form_Select( - 'style', - 'Default style', - $pconfig['style'], - $styles -)); - -$section->addInput(new Form_Select( - 'period', - 'Default period', - $pconfig['period'], - $periods -))->setHelp('Graphs will not be allowed to be recreated within a 1 minute interval, please ' . - 'take this into account after changing the style.'); - -$form->addGlobal(new Form_Button( - 'ResetRRD', - 'Reset RRD Data' -))->removeClass('btn-primary')->addClass('btn-danger'); - -$form->add($section); -print $form; - -include("foot.inc"); -- cgit v1.1