Exemplo n.º 1
0
function addHostList()
{
    global $LANG_TXT_FILTER_BY_PROBE;
    echo '<center>';
    addText($LANG_TXT_FILTER_BY_PROBE . ":");
    addSpace(4);
    $hosts = readHosts(0);
    foreach ($hosts as $r) {
        $host = $r['host'];
        addLink('host', $host, true, $host, 'group', false);
    }
    echo '</center>';
}
Exemplo n.º 2
0
function groupedGraph($chart, $item, $min, $max)
{
    global $cmd;
    echo '<div class="col-xs-2"><select class="form-control" name="' . $item . '" id="' . $item . '">';
    if (!isset($_POST[$item])) {
        $_POST[$item] = '';
        echo '<option selected value="Select">Select</option>';
    } else {
        echo '<option value="Select">Select</option>';
    }
    $itemSelected = '';
    $graphs = readGraphs();
    foreach ($graphs as $graph) {
        if (isset($_POST) && $_POST[$item] == $graph['id_graph']) {
            echo '<option selected value="' . $graph['id_graph'] . '">' . $graph['name'] . '</option>';
            $itemSelected = $graph['name'];
        } else {
            echo '<option value="' . $graph['id_graph'] . '">' . $graph['name'] . '</option>';
        }
    }
    echo '</select></div>';
    echo '<div class="col-xs-2"><select class="form-control" name="host" id="host">';
    if (!isset($_POST['host'])) {
        $_POST['host'] = '';
        echo '<option selected value="Select">Select</option>';
    } else {
        echo '<option value="Select">Select</option>';
    }
    $hostSelected = '';
    $hosts = readHosts(0);
    foreach ($hosts as $host) {
        $thehost = $host['host'];
        if (isset($_POST['host']) && $_POST['host'] == $host['id_host']) {
            $hostSelected = $thehost;
            echo '<option selected value="' . $host['id_host'] . '">' . $thehost . '</option>';
        } else {
            echo '<option value="' . $host['id_host'] . '">' . $thehost . '</option>';
        }
    }
    echo '</select></div>';
    $index = 0;
    $days = Days($_POST['date1'], $_POST['date2']);
    $divide = 1;
    $divide = getAverage($_POST['avg']);
    $divide = $divide[1];
    if ($_POST['avg'] == "None") {
        $divideslot = 60 * 30;
    } else {
        $divideslot = $divide;
    }
    if (is_numeric($_POST['host'])) {
        $id_host = $_POST['host'];
        $col = 0;
        $monitors = readMonitorsForGraph($_POST[$item]);
        foreach ($monitors as $monitor) {
            $id_item = $monitor['id_item'];
            $rawData = loadRAWData($_POST['date1'], 0, $id_item, $_POST['date2'], $id_host);
            unset($data2);
            $prev = 0;
            $next = 0;
            $history = $rawData['historyList'][$id_host];
            if (isset($history)) {
                $unit = $monitor['unit'];
                $div = 1;
                if ($unit == 'bps') {
                    $div = 1024;
                    //BGS011
                    $unit = 'Mbps';
                }
                unset($finalData);
                foreach ($history as $ddata) {
                    $tk = round($ddata['clock'] / $divide, 0) * $divide;
                    if (!isset($finalData[$tk])) {
                        $finalData[$tk] = array('clock' => $tk, 'sum' => 0, 'cnt' => 0);
                    }
                    $sum = $finalData[$tk]['sum'];
                    $cnt = $finalData[$tk]['cnt'];
                    $x = $sum + $ddata['value'];
                    $y = $cnt + 1;
                    $finalData[$tk] = array('clock' => $tk, 'sum' => $x, 'cnt' => $y);
                }
                foreach ($finalData as $row) {
                    if (!isset($minClock)) {
                        $minClock = $row['clock'] * 1000;
                        $maxClock = $row['clock'] * 1000;
                    } else {
                        if ($minClock > $row['clock'] * 1000) {
                            $minClock = $row['clock'] * 1000;
                        }
                        if ($maxClock < $row['clock'] * 1000) {
                            $maxClock = $row['clock'] * 1000;
                        }
                    }
                    $next = $row['clock'];
                    if ($prev > 0 && $next > 0 && $next - $prev > $divideslot * 1.2) {
                        $data2[] = array(($prev + 1000) * 1000, null);
                    }
                    $prev = $next;
                    $v = null;
                    if ($row['cnt'] != 0) {
                        $v = round($row['sum'] / $row['cnt'] * 1 / $div, 2);
                    }
                    $data2[] = array($row['clock'] * 1000, $v * 1 / $div, 2);
                }
                $chart->series[]->name = $monitor['descriptionLong'];
                $chart->series[$index]->type = 'spline';
                $chart->yAxis->title->text = $unit;
                $chart->series[$index]->color = getColor($col);
                $chart->series[$index]->data = $data2;
                $index++;
                $col++;
            }
        }
    }
    if (!isset($unit)) {
        $unit = "";
    }
    $title = $hostSelected . ":" . $itemSelected;
    $subtitle = 'From ' . $_POST['date1'] . ' to ' . $_POST['date2'];
    $chart = chartHeader($chart, 'c_' . $item, $title, $subtitle, $unit, null);
    $chart->xAxis->type = 'datetime';
    $chart->plotOptions->series->animation->complete = new HighchartJsExpr(" function () {redraw();}");
    if (!isset($minClock)) {
        $minClock = 0;
        $maxClock = 0;
    }
    if (!isset($unit)) {
        $unit = "";
    }
    $chart->tooltip->formatter = new HighchartJsExpr("\r\n            function() {\r\n                var s = '<b>'+ Highcharts.dateFormat('%e. %b %H:%M',this.x) +'</b>';    \r\n                \$.each(this.points, function(i, point) {\r\n                    s += '<br/><span style=\"color:'+point.series.color+'\">'+ point.series.name +': '+ point.y +' " . $unit . "</span><b>';\r\n                });\r\n                return s;\r\n            }");
    //return array( 0 => $chart, 1 => $minClock , 2 => $maxClock);
    echo "\n" . '<script> function redraw() { chart1.xAxis[0].setExtremes(' . ($minClock - 60000) . ', ' . ($maxClock + 60000 * 5) . ');}  </script>';
    return $chart;
}
Exemplo n.º 3
0
function graphCompare($chart, $item, $min, $max, $ch)
{
    echo '<div class="col-xs-2"><select class="form-control" name="' . $item . '" id="' . $item . '">';
    if (!isset($_POST[$item])) {
        $_POST[$item] = '';
        echo '<option selected value="Seleccione">Select</option>';
    } else {
        echo '<option value="Seleccione">Select</option>';
    }
    $itemsSelected = '';
    $monitors = readMonitors();
    foreach ($monitors as $items) {
        if (isset($_POST) && $_POST[$item] == $items['id_item']) {
            $itemsSelected = $items['descriptionLong'];
            echo '<option selected value="' . $items['id_item'] . '">' . $items['descriptionLong'] . '</option>';
        } else {
            echo '<option value="' . $items['id_item'] . '">' . $items['descriptionLong'] . '</option>';
        }
        $itemsArry[$items['id_item']] = array("unit" => $items['unit'], "name" => $items['descriptionLong']);
    }
    echo '</select></div>';
    $index = 0;
    if (isset($_POST['date1'])) {
        $days = Days($_POST['date1'], $_POST['date2']);
    }
    if (!isset($_POST['avg'])) {
        $_POST['avg'] = '4 Hours';
    }
    $divide = getAverage($_POST['avg']);
    $divide = $divide[1];
    /*
    	$days = 1;
    	$days = Days($_POST['date1'], $_POST['date2']);
    	
    	if ($days > 7 * 1) $format = '%Y/%m/%d %H:00:00';
    	if ($days > 7 * 2) $divide = 3600 * 4;
    	if ($days > 7 * 4) $divide = 3600 * 6;
    	if ($days > 7 * 5) $format = '%Y/%m/%d';
    	if ($days > 7 * 8) $divide = 3600 * 24 * 7;
    	if ($days > 7 * 16) $format = '%Y/%m';
    */
    $col = 0;
    $timeStart = strtotime($_POST['date1'] . ' 00:00:00');
    $timeFinish = strtotime($_POST['date2'] . ' 23:59:59');
    $hosts = readHosts(0);
    foreach ($hosts as $r) {
        $unit = getUnit($_POST[$item]);
        $div = 1;
        if ($unit == 'bps') {
            $div = 1024;
            ///BUGS BGS009
            $unit = 'Mbps';
        }
        $sonda = $r['host'];
        $id_host = $r['id_host'];
        $id_item = $_POST[$item];
        if ($id_item > 0) {
            $rawData = loadRAWData($_POST['date1'], 0, $id_item, $_POST['date2'], $id_host);
            $history = $rawData['historyList'][$id_host];
            unset($finalData);
            unset($data2);
            if (isset($history)) {
                foreach ($history as $ddata) {
                    $tk = round($ddata['clock'] / $divide, 0) * $divide;
                    if (!isset($finalData[$tk])) {
                        $finalData[$tk] = array('clock' => $tk, 'sum' => 0, 'cnt' => 0);
                    }
                    $sum = $finalData[$tk]['sum'];
                    $cnt = $finalData[$tk]['cnt'];
                    $x = $sum + $ddata['value'];
                    $y = $cnt + 1;
                    $finalData[$tk] = array('clock' => $tk, 'sum' => $x, 'cnt' => $y);
                }
                $data2[] = array($timeStart * 1000, null);
                foreach ($finalData as $row) {
                    if ($row['cnt'] != 0) {
                        $v = round($row['sum'] / $row['cnt'] * 1 / $div, 2);
                    }
                    $data2[] = array($row['clock'] * 1000, $v * 1 / $div, 2);
                    if (!isset($minClock)) {
                        $minClock = $row['clock'];
                        $maxClock = $row['clock'];
                        $maxClockIndex = $index;
                    } else {
                        if ($minClock > $row['clock']) {
                            $minClock = $row['clock'];
                        }
                        if ($maxClock < $row['clock']) {
                            $maxClock = $row['clock'];
                            $maxClockIndex = $index;
                        }
                    }
                }
            }
            if (isset($data2)) {
                $data2[] = array($timeFinish * 1000, null);
                $chart->yAxis->title->text = $unit;
                $chart->series[]->name = $sonda;
                $chart->series[$index]->type = 'spline';
                $chart->series[$index]->data = $data2;
                $chart->series[$index]->color = getColor($col);
                $index++;
            }
            unset($rawData);
            unset($history);
            $col++;
        }
    }
    if (!isset($maxClock)) {
        $maxClock = 0;
        $minClock = 0;
    }
    if (!isset($unit)) {
        $unit = "";
    }
    $title = getItem($_POST[$item]);
    $subtitle = 'From ' . $_POST['date1'] . ' to ' . $_POST['date2'];
    $chart = chartHeader($chart, 'c_' . $item, $title, $subtitle, $unit, null);
    $chart->xAxis->type = 'datetime';
    //$chart->plotOptions->series->animation->complete = new HighchartJsExpr(" function () {redraw" . $ch . "();}");
    $chart->tooltip->formatter = new HighchartJsExpr("\n            function() {\n                var s = '<b>'+ Highcharts.dateFormat('%e. %b %H:%M',this.x) +'</b>';    \n                \$.each(this.points, function(i, point) {\n                    s += '<br/><span style=\"color:'+point.series.color+'\">'+ point.series.name +': '+ point.y +' " . $unit . "</span><b>';\n                });\n                return s;\n            }");
    //echo "\n" . '<script> function redraw' . $ch . '() { ' . $ch . '.xAxis['.$maxClockIndex.'].setExtremes(' . $minClock* 1000 . ', ' . $maxClock* 1000 . ');}  </script>';
    return $chart;
}