Observium_CE/html/includes/graphs/generic_simplex.inc.php

152 lines
4.9 KiB
PHP

<?php
/**
* Observium
*
* This file is part of Observium.
*
* @package observium
* @subpackage graphs
* @copyright (C) Adam Armstrong
*
*/
if (!isset($colour_area_max)) {
$colour_area_max = "e5e5e5";
}
if (!isset($colour_line)) {
$colour_line = "FF4500";
}
if (!isset($colour_area)) {
$colour_area = "F0E68C";
}
#$colour_line .= "90";
#$colour_area .= "90";
// Draw generic bits graph
// args: ds_in, ds_out, unit_integer, rrd_filename, bg, legend, from, to, width, height, inverse, percentile
include($config['html_dir'] . "/includes/graphs/common.inc.php");
$graph_return['valid_options'][] = "alt_y";
$graph_return['valid_options'][] = "trend";
// Fix length before escaping for layout purposes
$unit_text = rrdtool_escape(str_pad(truncate($unit_text, 17, ''), 17));
$line_text = rrdtool_escape(str_pad(truncate($line_text, 11, ''), 11));
if (isset($unit_integer) && $unit_integer) {
$ds_format = '"%6.0lf"'; //NOTE. max value 999999
} else {
$ds_format = '"%5.1lf%s"';
}
if ($multiplier) {
$rrd_options .= " DEF:" . $ds . "_o=" . $rrd_filename_escape . ":" . $ds . ":AVERAGE";
$rrd_options .= " DEF:" . $ds . "_max_o=" . $rrd_filename_escape . ":" . $ds . ":MAX";
$rrd_options .= " DEF:" . $ds . "_min_o=" . $rrd_filename_escape . ":" . $ds . ":MIN";
$rrd_options .= " CDEF:" . $ds . "=" . $ds . "_o,$multiplier,*";
$rrd_options .= " CDEF:" . $ds . "_max=" . $ds . "_max_o,$multiplier,*";
$rrd_options .= " CDEF:" . $ds . "_min=" . $ds . "_min_o,$multiplier,*";
} else {
$rrd_options .= " DEF:" . $ds . "=" . $rrd_filename_escape . ":" . $ds . ":AVERAGE";
$rrd_options .= " DEF:" . $ds . "_max=" . $rrd_filename_escape . ":" . $ds . ":MAX";
$rrd_options .= " DEF:" . $ds . "_min=" . $rrd_filename_escape . ":" . $ds . ":MIN";
}
if ($print_total) {
$rrd_options .= " VDEF:" . $ds . "_total=ds,TOTAL";
}
if ($percentile) {
$rrd_options .= " VDEF:" . $ds . "_percentile=" . $ds . "," . $percentile . ",PERCENT";
}
if ($vars['previous'] == "yes") {
if ($multiplier) {
$rrd_options .= " DEF:" . $ds . "_oX=" . $rrd_filename_escape . ":" . $ds . ":AVERAGE:start=" . $prev_from . ":end=" . $from;
$rrd_options .= " DEF:" . $ds . "_max_oX=" . $rrd_filename_escape . ":" . $ds . ":MAX:start=" . $prev_from . ":end=" . $from;
$rrd_options .= " SHIFT:" . $ds . "_oX:$period";
$rrd_options .= " SHIFT:" . $ds . "_max_oX:$period";
$rrd_options .= " CDEF:" . $ds . "X=" . $ds . "_oX,$multiplier,*";
$rrd_options .= " CDEF:" . $ds . "_maxX=" . $ds . "_max_oX,$multiplier,*";
} else {
$rrd_options .= " DEF:" . $ds . "X=" . $rrd_filename_escape . ":" . $ds . ":AVERAGE:start=" . $prev_from . ":end=" . $from;
$rrd_options .= " DEF:" . $ds . "_maxX=" . $rrd_filename_escape . ":" . $ds . ":MAX:start=" . $prev_from . ":end=" . $from;
$rrd_options .= " SHIFT:" . $ds . "X:$period";
$rrd_options .= " SHIFT:" . $ds . "_maxX:$period";
}
if ($print_total) {
$rrd_options .= " VDEF:" . $ds . "_totalX=ds,TOTAL";
}
if ($percentile) {
$rrd_options .= " VDEF:" . $ds . "_percentileX=" . $ds . "," . $percentile . ",PERCENT";
}
//if ($graph_max)
//{
// $rrd_options .= " AREA:".$ds."_max#".$colour_area_max.":";
//}
}
//if ($colour_minmax)
//{
// $rrd_options .= " AREA:".$ds."_max#c5c5c5";
// $rrd_options .= " AREA:".$ds."_min#ffffff";
//} else {
if ($graph_max) {
$rrd_options .= " CDEF:" . $ds . "_minmax=" . $ds . "_max," . $ds . "_min,-";
$rrd_options .= " AREA:" . $ds . "_min#ffffff00";
$rrd_options .= " AREA:" . $ds . "_minmax#" . $colour_line . "30:STACK";
} else {
$rrd_options .= " AREA:" . $ds . "#" . $colour_area . ":";
}
//}
$rrd_options .= " COMMENT:'" . $unit_text . "Now Avg Min Max";
if ($percentile) {
$rrd_options .= " " . $percentile . "th %";
}
$rrd_options .= "\\n'";
$rrd_options .= " LINE1.25:" . $ds . "#" . $colour_line . ":'" . $line_text . "'";
$rrd_options .= " GPRINT:" . $ds . ":LAST:" . $ds_format;
$rrd_options .= " GPRINT:" . $ds . ":AVERAGE:" . $ds_format;
// if ($print_min || TRUE)
// {
$rrd_options .= " GPRINT:" . $ds . "_min:MIN:" . $ds_format;
// }
$rrd_options .= " GPRINT:" . $ds . "_max:MAX:" . $ds_format;
if ($percentile) {
$rrd_options .= " GPRINT:" . $ds . "_percentile:" . $ds_format;
}
$rrd_options .= "\\n";
$rrd_options .= " COMMENT:\\n";
if ($print_total) {
$rrd_options .= " GPRINT:" . $ds . "_tot:Total\ " . $ds_format . "\)\\l";
}
if ($percentile) {
$rrd_options .= " LINE1:" . $ds . "_percentile#aa0000";
}
if ($vars['previous'] == "yes") {
$rrd_options .= " LINE1.25:" . $ds . "X#666666:'Prev \\n'";
$rrd_options .= " AREA:" . $ds . "X#99999966:";
}
if ($vars['trend']) {
$rrd_options .= " CDEF:" . $ds . "smooth=" . $ds . ",1800,TREND";
$rrd_options .= " CDEF:" . $ds . "predict=586400,-7,1800," . $ds . ",PREDICT";
$rrd_options .= " LINE1:" . $ds . "predict#FF00FF::dashes=3";
}
// EOF