AYUDA: Requiero modificar Top-10 de traffic graph
-
===group
===Hola amigos tengo mucho tiempo con pfsense y he comenzado a personalizarlo, pero una de mis inquietudes y que quiero lograr es que modifique el Top-10 de traffic graph como bien sabran algunos expertos esta herramienta solo muestra los ultimos 10 mi idea es mostrar todos mis usuarios para poder monitorearlos en tiempo real, y se que preguntaran o diras sobrecargaras el procesador y todo eso, pero les digo tengo el procesador y ram para esto, llegue al punto de colocar la grafica a 0.3 seg y que la lista de usuarios sea a 1 seg.
De antemano muchas gracias
No se si alguno pueda ayudarme
A los que deseen les ayude una vez mi hilo sea resuelto con mucho gusto los apoyo y aportocode_text ```<?php /* * status_graph.php * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2004-2019 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) * Copyright (c) 2003-2004 Manuel Kasper <mk@neon1.net>. * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ ##|+PRIV ##|*IDENT=page-status-trafficgraph ##|*NAME=Status: Traffic Graph ##|*DESCR=Allow access to the 'Status: Traffic Graph' page. ##|*MATCH=status_graph.php* ##|*MATCH=bandwidth_by_ip.php* ##|*MATCH=graph.php* ##|*MATCH=ifstats.php* ##|-PRIV require_once("guiconfig.inc"); require_once("ipsec.inc"); if (is_array($config["traffic_graphs"])){ $pconfig = $config["traffic_graphs"]; } // Get configured interface list $ifdescrs = get_configured_interface_with_descr(); if (ipsec_enabled()) { $ifdescrs['enc0'] = gettext("IPsec"); } foreach (array('server', 'client') as $mode) { if (is_array($config['openvpn']["openvpn-{$mode}"])) { foreach ($config['openvpn']["openvpn-{$mode}"] as $id => $setting) { if (!isset($setting['disable'])) { $ifdescrs['ovpn' . substr($mode, 0, 1) . $setting['vpnid']] = gettext("OpenVPN") . " " . $mode . ": ".htmlspecialchars($setting['description']); } } } } $ifdescrs = array_merge($ifdescrs, interface_ipsec_vti_list_all()); if (!empty($_POST)) { // update view if settings are changed or saved $curif = $_POST['if']; $found = false; foreach ($ifdescrs as $descr => $ifdescr) { if ($descr == $curif) { $found = true; break; } } if ($found === false) { header("Location: status_graph.php"); exit; } $cursort = $_POST['sort']; $curfilter = $_POST['filter']; $curhostipformat = $_POST['hostipformat']; $curbackgroundupdate = $_POST['backgroundupdate']; $curinvert = $_POST['invert']; $cursmoothing = $_POST['smoothfactor']; // Save data to config if (isset($_POST['save'])) { $pconfig = array(); $pconfig["if"] = $curif; $pconfig["sort"] = $cursort; $pconfig["filter"] = $curfilter; $pconfig["hostipformat"] = $curhostipformat; $pconfig["backgroundupdate"] = $curbackgroundupdate; $pconfig["smoothfactor"] = $cursmoothing; $pconfig["invert"] = $curinvert; $config["traffic_graphs"] = array(); $config["traffic_graphs"] = $pconfig; write_config("Traffic Graphs settings updated"); } } else { // default settings from config if (is_array($pconfig)) { $curif = $pconfig['if']; $cursort = $pconfig['sort']; $curfilter = $pconfig['filter']; $curhostipformat = $pconfig['hostipformat']; $curbackgroundupdate = $pconfig['backgroundupdate']; $cursmoothing = $pconfig['smoothfactor']; $curinvert = $pconfig['invert']; } else { // initialize when no config details are present if (empty($ifdescrs["wan"])) { /* Handle the case when WAN has been disabled. Use the first key in ifdescrs. */ reset($ifdescrs); $curif = key($ifdescrs); } else { $curif = "wan"; } $cursort = ""; $curfilter = ""; $curhostipformat = ""; $curbackgroundupdate = ""; $cursmoothing = 0; $curinvert = ""; } } function iflist() { global $ifdescrs; $iflist = array(); foreach ($ifdescrs as $ifn => $ifd) { $iflist[$ifn] = $ifd; } return($iflist); } $pgtitle = array(gettext("Status"), gettext("Traffic Graph")); include("head.inc"); $form = new Form(); $form->addClass('auto-submit'); $section = new Form_Section('Graph Settings'); $group = new Form_Group('Traffic Graph'); $group->add(new Form_Select( 'if', null, $curif, iflist() ))->setHelp('Interface'); $group->add(new Form_Select( 'sort', null, $cursort, array ( 'in' => gettext('Bandwidth In'), 'out' => gettext('Bandwidth Out') ) ))->setHelp('Sort by'); $group->add(new Form_Select( 'filter', null, $curfilter, array ( 'local' => gettext('Local'), 'remote'=> gettext('Remote'), 'all' => gettext('All') ) ))->setHelp('Filter'); $group->add(new Form_Select( 'hostipformat', null, $curhostipformat, array ( '' => gettext('IP Address'), 'hostname' => gettext('Host Name'), 'descr' => gettext('Description'), 'fqdn' => gettext('FQDN') ) ))->setHelp('Display'); $section->add($group); $group2 = new Form_Group('Controls'); $group2->add(new Form_Select( 'backgroundupdate', null, $curbackgroundupdate, array ( 'false' => gettext('Clear graphs when not visible.'), 'true' => gettext('Keep graphs updated on inactive tab. (increases cpu usage)'), ) ))->setHelp('Background updates'); $group2->add(new Form_Select( 'invert', null, $curinvert, array ( 'true' => gettext('On'), 'false' => gettext('Off'), ) ))->setHelp('Invert in/out'); $group2->add(new Form_Input( 'smoothfactor', null, 'range', $cursmoothing, array ( 'min' => 0, 'max' => 5, 'step' => 1 ) ))->setHelp('Graph Smoothing'); $section->add($group2); $form->add($section); print $form; $realif = get_real_interface($curif); ?> <script src="/vendor/d3/d3.min.js?v=<?=filemtime('/usr/local/www/vendor/d3/d3.min.js')?>"></script> <script src="/vendor/nvd3/nv.d3.js?v=<?=filemtime('/usr/local/www/vendor/nvd3/nv.d3.js')?>"></script> <script src="/vendor/visibility/visibility-1.2.3.min.js?v=<?=filemtime('/usr/local/www/vendor/visibility/visibility-1.2.3.min.js')?>"></script> <link href="/vendor/nvd3/nv.d3.css" media="screen, projection" rel="stylesheet" type="text/css"> <script type="text/javascript"> //<![CDATA[ events.push(function() { var InterfaceString = "<?=$curif?>"; var RealInterfaceString = "<?=$realif?>"; window.graph_backgroundupdate = $('#backgroundupdate').val() === "true"; window.smoothing = $('#smoothfactor').val(); window.interval = 0.3; window.invert = $('#invert').val() === "true"; window.size = 8; window.interfaces = InterfaceString.split("|").filter(function(entry) { return entry.trim() != ''; }); window.realinterfaces = RealInterfaceString.split("|").filter(function(entry) { return entry.trim() != ''; }); graph_init(); graph_visibilitycheck(); }); //]]> </script> <script src="/js/traffic-graphs.js?v=<?=filemtime('/usr/local/www/js/traffic-graphs.js')?>"></script> <script type="text/javascript"> //<![CDATA[ var graph_interfacenames = <?php foreach ($ifdescrs as $ifname => $ifdescr) { $iflist[$ifname] = $ifdescr; } echo json_encode($iflist); ?>; function updateBandwidth() { $.ajax( '/bandwidth_by_ip.php', { type: 'get', data: $(document.forms[0]).serialize(), success: function (data) { var hosts_split = data.split("|"); $('#top10-hosts').empty(); //parse top ten bandwidth abuser hosts for (var y=0; y<15; y++) { if ((y < hosts_split.length) && (hosts_split[y] != "") && (hosts_split[y] != "no info")) { hostinfo = hosts_split[y].split(";"); $('#top10-hosts').append('<tr>'+ '<td>'+ hostinfo[0] +'</td>'+ '<td>'+ hostinfo[1] +' <?=gettext("Bits/sec");?></td>'+ '<td>'+ hostinfo[2] +' <?=gettext("Bits/sec");?></td>'+ '</tr>'); } } }, }); } events.push(function() { $('form.auto-submit').on('change', function() { $(this).submit(); }); setInterval('updateBandwidth()', 500); updateBandwidth(); }); //]]> </script> <?php /* link the ipsec interface magically */ if (ipsec_enabled()) { $ifdescrs['enc0'] = gettext("IPsec"); } ?> <div class="panel panel-default"> <div class="panel-heading"> <h2 class="panel-title"><?=gettext("Traffic Graph");?></h2> </div> <div class="panel-body"> <div class="col-sm-6"> <div id="traffic-chart-<?=$curif?>" class="d3-chart traffic-widget-chart"> <svg></svg> </div> </div> <div class="col-sm-6"> <table class="table table-striped table-condensed"> <thead> <tr> <th><?=(($curhostipformat == "") ? gettext("Host IP") : gettext("Host Name or IP")); ?></th> <th><?=gettext("Bandwidth In"); ?></th> <th><?=gettext("Bandwidth Out"); ?></th> </tr> </thead> <tbody id="top10-hosts"> <!-- to be added by javascript --> </tbody> </table> </div> </div> </div> <?php include("foot.inc");
code_text