コード例 #1
0
function create_graph($output, $start, $title)
{
    $rrd = '/opt/minepeon/var/rrd/';
    $png = '/opt/minepeon/http/rrd/';
    $options = array('--slope-mode', '--start', $start, '--title=' . $title, '--vertical-label=Hash per second', '--lower=0', '--color=BACK#fff', '--color=CANVAS#fff', '--color=SHADEB#fff', '--color=SHADEA#fff', 'DEF:hashrate=' . $rrd . 'hashrate.rrd:hashrate:AVERAGE', 'CDEF:realspeed=hashrate,1000,*', 'AREA:realspeed#ddd', 'LINE:realspeed#000');
    return rrd_graph($png . $output, $options);
}
コード例 #2
0
 public static function createRRDGraph($filename, $options)
 {
     $config = json_decode(file_get_contents("config.json"), true);
     $options[] = "--watermark";
     $options[] = $config["communityName"] . " - " . date("c");
     $ret = rrd_graph($filename, $options);
     echo rrd_error();
 }
コード例 #3
0
ファイル: exec.rrd.php プロジェクト: brucewu16899/1.6.x
function create_graph($output, $start, $title)
{
    $options = array("--slope-mode", "--start", $start, "--title={$title}", "--vertical-label=Load 0 -> 30", "--alt-autoscale-max", "--lower-limit=0", "--lower=0", "DEF:load2mn=/usr/share/artica-postfix/ressources/databases/rrd/load.rrd:load:AVERAGE", "LINE:load2mn#00FF00:Load average", "GPRINT:load2mn:AVERAGE:Avg\\: %3.2lf", "GPRINT:load2mn:MAX:Max\\:%3.2lf");
    $ret = rrd_graph($output, $options, count($options));
    if (!$ret) {
        echo "<b>Graph error: </b>" . rrd_error() . "\n";
    }
}
コード例 #4
0
ファイル: index.php プロジェクト: Tiger66639/minepeon-base
function create_graph($output, $start, $title)
{
    $RRDPATH = '/opt/minepeon/var/rrd/';
    $options = array("--slope-mode", "--start", $start, "--title={$title}", "--vertical-label=Hash per second", "--lower=0", "DEF:hashrate=" . $RRDPATH . "hashrate.rrd:hashrate:AVERAGE", "CDEF:realspeed=hashrate,1000,*", "LINE2:realspeed#FF0000");
    $ret = rrd_graph("/opt/minepeon/http/rrd/" . $output, $options);
    if (!$ret) {
        //echo "<b>Graph error: </b>".rrd_error()."\n";
    }
}
コード例 #5
0
 function execute($filename)
 {
     $return = rrd_graph($this->graphics_path . $filename, $this->options, count($this->options));
     if (!is_array($return)) {
         throw new Rrdtool_Exception("rrd_graph() ERROR: " . rrd_error());
     } else {
         return $return;
     }
 }
コード例 #6
0
ファイル: windows.php プロジェクト: kyrisu/observernms
function storagegraphWin($rrd, $graph, $from = "-2d", $descr)
{
    $database = "rrd/" . $rrd;
    $imgfile = "graphs/" . "{$graph}";
    $opts = array("--start", $from, "-v MB", "-b 1024", "--rigid", "--title", $descr, "--alt-autoscale-max", "-l 0", "--width", "335", "--height", "100", "DEF:size={$database}:size:AVERAGE", "DEF:used={$database}:used:AVERAGE", "AREA:size#80ee80:Total", "GPRINT:size:LAST:Cur\\:%8.2lf %s", "GPRINT:size:AVERAGE: Avg\\:%8.2lf %s", "GPRINT:size:MAX: Max\\:%8.2lf %s\\n", "AREA:used#ec9900:Used", "GPRINT:used:LAST: Cur\\:%8.2lf %s", "GPRINT:used:AVERAGE: Avg\\:%8.2lf %s", "GPRINT:used:MAX: Max\\:%8.2lf %s\\n", "LINE1:size#000000:");
    $ret = rrd_graph("{$imgfile}", $opts, count($opts));
    if (!is_array($ret)) {
        $err = rrd_error();
        echo "rrd_graph() ERROR: {$err}\n";
        return FALSE;
    } else {
        return $imgfile;
    }
}
コード例 #7
0
ファイル: Snmp.php プロジェクト: svennd/ServerStalker
 function create_image($rrd_file, $image_file, $time = '1d', $type = 'traffic')
 {
     switch ($type) {
         case 'traffic':
             $opts = array("--imgformat=PNG", "--start=-" . $time, "--end=-300", "--title=Traffic graph", "--rigid", "--base=1000", "--height=120", "--width=500", "--alt-autoscale-max", "--lower-limit=0", "--vertical-label=bits per second", "--slope-mode", "DEF:a=" . $rrd_file . ":traffic_in:AVERAGE", "DEF:b=" . $rrd_file . ":traffic_out:AVERAGE", "CDEF:cdefa=a,8,*", "CDEF:cdefe=b,8,*", "AREA:cdefa#00E600: Inbound", "GPRINT:cdefa:LAST:Current\\:%8.2lf %s", "GPRINT:cdefa:AVERAGE:Average\\:%8.2lf %s", "GPRINT:cdefa:MAX:Maximum\\:%8.2lf %s\\n", "LINE1:cdefe#002A97:Outbound", "GPRINT:cdefe:LAST:Current\\:%8.2lf %s", "GPRINT:cdefe:AVERAGE:Average\\:%8.2lf %s", "GPRINT:cdefe:MAX:Maximum\\:%8.2lf %s\\n");
             break;
     }
     $ret = rrd_graph($image_file, $opts, count($opts));
     if (!is_array($ret)) {
         $error = rrd_error();
         print $error;
         return false;
     } else {
         return true;
     }
 }
コード例 #8
0
ファイル: snom-graphing.php プロジェクト: job/librenms
function callsgraphSNOM($rrd, $graph, $from, $to, $width, $height, $title, $vertical)
{
    global $config;
    $database = $config['rrd_dir'] . '/' . $rrd;
    $imgfile = 'graphs/' . "{$graph}";
    $optsa = array('--start', $from, '--end', $to, '--width', $width, '--height', $height, '--vertical-label', $vertical, '--alt-autoscale-max', '-l 0', '-E', '--title', $title, "DEF:call={$database}:CALLS:AVERAGE", 'CDEF:calls=call,360,*', 'LINE1.25:calls#FF9900:Calls', 'GPRINT:calls:LAST:Cu\\: %2.0lf/min', 'GPRINT:calls:AVERAGE:Av\\: %2.0lf/min', "GPRINT:calls:MAX:Mx\\: %2.0lf/min\\n");
    if ($width <= '300') {
        $optsb = array('--font', 'LEGEND:7:' . $config['mono_font'] . '', '--font', 'AXIS:6:' . $config['mono_font'] . '', '--font-render-mode', 'normal');
    }
    $opts = array_merge($config['rrdgraph_defaults'], $optsa, $optsb);
    $ret = rrd_graph("{$imgfile}", $opts, count($opts));
    if (!is_array($ret)) {
        $err = rrd_error();
        echo "rrd_graph() ERROR: {$err}\n";
        return false;
    } else {
        return $imgfile;
    }
}
コード例 #9
0
function memgraphHP($rrd, $graph, $from, $to, $width, $height, $title, $vertical)
{
    global $config, $installdir;
    $database = "rrd/" . $rrd;
    $memrrd = $database;
    $opts = array("--start", "{$from}", "--alt-autoscale-max", "--width", "{$width}", "--height", "{$height}", "-l", "0", "-E", "-b", "1024", "DEF:TOTAL={$memrrd}:TOTAL:AVERAGE", "DEF:FREE={$memrrd}:FREE:AVERAGE", "DEF:USED={$memrrd}:USED:AVERAGE", "AREA:USED#ee9900:Used", "AREA:FREE#FAFDCE:Free:STACK", "LINE1.5:TOTAL#cc0000:");
    if ($width <= "300") {
        $optsb = array("--font", "LEGEND:7:" . $config['mono_font'] . "", "--font", "AXIS:6:" . $config['mono_font'] . "", "--font-render-mode", "normal");
    }
    $opts = array_merge($config['rrdgraph_defaults'], ${$opts}, $optsb);
    $ret = rrd_graph("{$graph}", $opts, count($opts));
    if (!is_array($ret)) {
        $err = rrd_error();
        #echo "rrd_graph() ERROR: $err\n";
        return FALSE;
    } else {
        return $graph;
    }
}
コード例 #10
0
ファイル: snom-graphing.php プロジェクト: kyrisu/observernms
function callsgraphSNOM($rrd, $graph, $from, $to, $width, $height, $title, $vertical)
{
    global $config;
    $database = $config['rrd_dir'] . "/" . $rrd;
    $imgfile = "graphs/" . "{$graph}";
    $optsa = array("--start", $from, "--end", $to, "--width", $width, "--height", $height, "--vertical-label", $vertical, "--alt-autoscale-max", "-l 0", "-E", "--title", $title, "DEF:call={$database}:CALLS:AVERAGE", "CDEF:calls=call,360,*", "LINE1.25:calls#FF9900:Calls", "GPRINT:calls:LAST:Cu\\: %2.0lf/min", "GPRINT:calls:AVERAGE:Av\\: %2.0lf/min", "GPRINT:calls:MAX:Mx\\: %2.0lf/min\\n");
    if ($width <= "300") {
        $optsb = array("--font", "LEGEND:7:" . $config['mono_font'] . "", "--font", "AXIS:6:" . $config['mono_font'] . "", "--font-render-mode", "normal");
    }
    $opts = array_merge($config['rrdgraph_defaults'], $optsa, $optsb);
    $ret = rrd_graph("{$imgfile}", $opts, count($opts));
    if (!is_array($ret)) {
        $err = rrd_error();
        echo "rrd_graph() ERROR: {$err}\n";
        return FALSE;
    } else {
        return $imgfile;
    }
}
コード例 #11
0
            $nameg = "Req/sec";
        } elseif ($smet == "B_S") {
            $namel = "Bytes/second";
            $nameg = "B/sec";
        } elseif ($smet == "B_R") {
            $namel = "Bytes/request";
            $nameg = "B/req";
        }
        echo "<br>{$name}";
        $rrdgraph = array("--slope-mode", "--start", "-1h", "--end", "{$time}", "--vertical-label", "{$namel}");
        $an = 1;
        foreach ($server as $servername) {
            $color = str_pad(dechex(mt_rand(0, 0xffffff)), 6, '0', STR_PAD_LEFT);
            array_push($rrdgraph, "DEF:{$smet}{$an}={$path}/{$servername}.rrd:{$smet}:AVERAGE", "LINE:{$smet}{$an}#{$color}:{$namel}-{$servername}", "GPRINT:{$smet}{$an}:LAST:Current {$nameg} = %6.2lf {$nameg}");
            $an++;
        }
        $ret = rrd_graph("{$path}/{$smet}.png", $rrdgraph);
        echo rrd_error();
        echo "<br><img src='view.php?name={$smet}'/><br>";
    }
}
?>
       
       </table>
       </center>
        
        </table>
        </div>
        </body>
</html>        
コード例 #12
0
ファイル: theme.php プロジェクト: npfriday/Tinyboard
 public function build($action, $settings)
 {
     global $config, $_theme, $argv;
     if (!$settings) {
         error('This theme is not currently installed.');
     }
     $this->boards = explode(' ', $settings['boards']);
     $this->spans = array('hour', 'day', 'week', 'month', 'year');
     // exclude boards from the "combined" graph
     $this->combined_exclude = array();
     if ($action == 'cron') {
         if (!file_exists($settings['path'])) {
             mkdir($settings['path']);
         }
         if (!file_exists($settings['images'])) {
             mkdir($settings['images']);
         }
         foreach ($this->boards as &$board) {
             $file = $settings['path'] . '/' . $board . '.rrd';
             if (!file_exists($file)) {
                 // Create graph
                 if (!rrd_create($file, array('-s 60', 'DS:posts:COUNTER:86400:0:10000', 'RRA:AVERAGE:0:1:60', 'RRA:AVERAGE:0:1:1440', 'RRA:AVERAGE:0:30:10080', 'RRA:AVERAGE:0:120:43829', 'RRA:AVERAGE:0:1440:525948', 'RRA:AVERAGE:0:2880:1051897', 'RRA:MAX:0:1:60', 'RRA:MAX:0:1:1440', 'RRA:MAX:0:30:10080', 'RRA:MAX:0:120:43829', 'RRA:MAX:0:1440:525948', 'RRA:MAX:0:2880:1051897'))) {
                     error('RRDtool failed: ' . htmlentities(rrd_error()));
                 }
             }
             // debug just the graphing (not updating) with the --debug switch
             if (!isset($argv[1]) || $argv[1] != '--debug') {
                 // Update graph
                 $query = query(sprintf("SELECT MAX(`id`) AS `count` FROM `posts_%s`", $board));
                 $count = $query->fetch();
                 $count = $count['count'];
                 if (!rrd_update($file, array('-t', 'posts', 'N:' . $count))) {
                     error('RRDtool failed: ' . htmlentities(rrd_error()));
                 }
             }
             foreach ($this->spans as &$span) {
                 // Graph graph
                 if (!rrd_graph($settings['images'] . '/' . $board . '-' . $span . '.png', array('-s -1' . $span, '-t Posts on ' . sprintf($config['board_abbreviation'], $board) . ' this ' . $span, '--lazy', '-l 0', '-h', $settings['height'], '-w', $settings['width'], '-a', 'PNG', '-R', 'mono', '-W', 'Powered by Tinyboard', '-E', '-X', '0', '-Y', '-v posts/' . $settings['rate'], 'DEF:posts-second=' . $file . ':posts:AVERAGE', 'CDEF:posts-minute=posts-second,60,*', 'CDEF:posts-hour=posts-minute,60,*', 'CDEF:posts-day=posts-hour,24,*', 'CDEF:posts-week=posts-day,7,*', 'CDEF:posts-month=posts-day,28,*', 'CDEF:posts-year=posts-day,365,*', 'DEF:posts=' . $file . ':posts:AVERAGE', 'LINE2:posts-' . $settings['rate'] . '#663300:Posts', 'GPRINT:posts-' . $settings['rate'] . ':MAX:Max\\: %5.2lf', 'GPRINT:posts-' . $settings['rate'] . ':AVERAGE:Average\\: %5.2lf', 'GPRINT:posts-' . $settings['rate'] . ':LAST:Current\\: %5.2lf posts/' . $settings['rate'], 'HRULE:0#000000'))) {
                     error('RRDtool failed: ' . htmlentities(rrd_error()));
                 }
             }
         }
         // combined graph
         foreach ($this->spans as &$span) {
             $options = array('-s -1' . $span, '-t Posts this ' . $span, '--lazy', '-l 0', '-h', $settings['height'], '-w', $settings['width'], '-a', 'PNG', '-R', 'mono', '-W', 'Powered by Tinyboard', '-E', '-X', '0', '-Y', '-v posts/' . $settings['rate']);
             $red = 0;
             $green = 0;
             $blue = 0;
             $c = 0;
             $cc = 0;
             $c = 1;
             $cc = 0;
             $red = 2;
             foreach ($this->boards as &$board) {
                 if (in_array($board, $this->combined_exclude)) {
                     continue;
                 }
                 $color = str_pad(dechex($red * 85), 2, '0', STR_PAD_LEFT) . str_pad(dechex($green * 85), 2, '0', STR_PAD_LEFT) . str_pad(dechex($blue * 85), 2, '0', STR_PAD_LEFT);
                 $options[] = 'DEF:posts' . $board . '-second=' . $settings['path'] . '/' . $board . '.rrd' . ':posts:AVERAGE';
                 $options[] = 'CDEF:posts' . $board . '-minute=posts' . $board . '-second,60,*';
                 $options[] = 'CDEF:posts' . $board . '-hour=posts' . $board . '-minute,60,*';
                 $options[] = 'CDEF:posts' . $board . '-day=posts' . $board . '-hour,24,*';
                 $options[] = 'CDEF:posts' . $board . '-week=posts' . $board . '-day,7,*';
                 $options[] = 'CDEF:posts' . $board . '-month=posts' . $board . '-day,28,*';
                 $options[] = 'CDEF:posts' . $board . '-year=posts' . $board . '-day,365,*';
                 $options[] = 'LINE2:posts' . $board . '-' . $settings['rate'] . '#' . $color . ':' . sprintf($config['board_abbreviation'], $board);
                 // Randomize colors using this horrible undocumented algorithm I threw together while debugging
                 if ($c == 0) {
                     $red++;
                 } elseif ($c == 1) {
                     $green++;
                 } elseif ($c == 2) {
                     $blue++;
                 } elseif ($c == 3) {
                     $green--;
                 } elseif ($c == 4) {
                     $red--;
                 }
                 $cc++;
                 if ($cc > 2) {
                     $c++;
                     $cc = 0;
                 }
                 if ($c > 4) {
                     $c = 0;
                 }
                 if ($red > 3) {
                     $red = 0;
                 }
                 if ($green > 3) {
                     $green = 0;
                 }
                 if ($blue > 3) {
                     $blue = 0;
                 }
             }
             $options[] = 'HRULE:0#000000';
             if (!rrd_graph($settings['images'] . '/combined-' . $span . '.png', $options)) {
                 error('RRDtool failed: ' . htmlentities(rrd_error()));
             }
         }
     }
 }
コード例 #13
0
function tool_graphs_build_rrd($fname, $period = 0)
{
    $rrdperiod = '-' . $period;
    $rrdfile = RRD_PATH . $fname;
    $webimage = GFX_PATH . $fname . '_' . $period . '.gif';
    $opts = array("--start", $rrdperiod, "DEF:val=" . $rrdfile . ":var:AVERAGE", "LINE2:val#0000FF");
    $ret = rrd_graph($webimage, $opts, count($opts));
    if (is_array($ret)) {
        return array('status' => true, 'img' => $webimage);
    }
    $err = rrd_error();
    return array('status' => false, 'error' => "Error: rrd_graph() -- {$err}");
}
コード例 #14
0
ファイル: amavis.stats.php プロジェクト: BillTheBest/1.6.x
function pre_graph($img, $opts, $count)
{
    $tmp = "rrd_graph";
    ${$img} = $opts;
    ${$tmp} = array("{$img}" => $opts);
    aslog(${$tmp}, 0, 'rrd_graph');
    $pre_ret = rrd_graph($img, $opts, $count);
    aslog($pre_ret, 0, 'ret');
    return $pre_ret;
}
コード例 #15
0
ファイル: port.php プロジェクト: retspen/swmon
/* Вывод графиков загрузки порта */
/* За час */
$rrh = array("--start", "-1h", "--title={$row['1']}", "DEF:in={$homedir}/rrd/" . $id . "_" . $port . ".rrd:in:AVERAGE", "DEF:out={$homedir}/rrd/" . $id . "_" . $port . ".rrd:out:AVERAGE", "CDEF:inbits=in,8,*", "CDEF:outbits=out,8,*", "AREA:inbits#00CF00FF:In", "GPRINT:inbits:LAST: Current\\:%8.2lf %s", "GPRINT:inbits:AVERAGE:Average\\:%8.2lf %s", "GPRINT:inbits:MAX:Max\\:%8.2lf %s\\n", "LINE1:outbits#002A97FF:Out", "GPRINT:outbits:LAST:Current\\:%8.2lf %s", "GPRINT:outbits:AVERAGE:Average\\:%8.2lf %s", "GPRINT:outbits:MAX:Max\\:%8.2lf %s");
$resh = rrd_graph("{$homedir}/tmp/" . $id . "_" . $port . "_1h.png", $rrh, count($rrh));
/* За день */
$rrd = array("--start", "-1d", "--title={$row['1']}", "DEF:in={$homedir}/rrd/" . $id . "_" . $port . ".rrd:in:AVERAGE", "DEF:out={$homedir}/rrd/" . $id . "_" . $port . ".rrd:out:AVERAGE", "CDEF:inbits=in,8,*", "CDEF:outbits=out,8,*", "AREA:inbits#00CF00FF:In", "GPRINT:inbits:LAST: Current\\:%8.2lf %s", "GPRINT:inbits:AVERAGE:Average\\:%8.2lf %s", "GPRINT:inbits:MAX:Max\\:%8.2lf %s\\n", "LINE1:outbits#002A97FF:Out", "GPRINT:outbits:LAST:Current\\:%8.2lf %s", "GPRINT:outbits:AVERAGE:Average\\:%8.2lf %s", "GPRINT:outbits:MAX:Max\\:%8.2lf %s");
$resd = rrd_graph("{$homedir}/tmp/" . $id . "_" . $port . "_1d.png", $rrd, count($rrd));
/* За неделю */
$rrw = array("--start", "-1w", "--title={$row['1']}", "DEF:in={$homedir}/rrd/" . $id . "_" . $port . ".rrd:in:AVERAGE", "DEF:out={$homedir}/rrd/" . $id . "_" . $port . ".rrd:out:AVERAGE", "CDEF:inbits=in,8,*", "CDEF:outbits=out,8,*", "AREA:inbits#00CF00FF:In", "GPRINT:inbits:LAST: Current\\:%8.2lf %s", "GPRINT:inbits:AVERAGE:Average\\:%8.2lf %s", "GPRINT:inbits:MAX:Max\\:%8.2lf %s\\n", "LINE1:outbits#002A97FF:Out", "GPRINT:outbits:LAST:Current\\:%8.2lf %s", "GPRINT:outbits:AVERAGE:Average\\:%8.2lf %s", "GPRINT:outbits:MAX:Max\\:%8.2lf %s");
$resw = rrd_graph("{$homedir}/tmp/" . $id . "_" . $port . "_1w.png", $rrw, count($rrw));
/* За месяц */
$rrm = array("--start", "-1m", "--title={$row['1']}", "DEF:in={$homedir}/rrd/" . $id . "_" . $port . ".rrd:in:AVERAGE", "DEF:out={$homedir}/rrd/" . $id . "_" . $port . ".rrd:out:AVERAGE", "CDEF:inbits=in,8,*", "CDEF:outbits=out,8,*", "AREA:inbits#00CF00FF:In", "GPRINT:inbits:LAST: Current\\:%8.2lf %s", "GPRINT:inbits:AVERAGE:Average\\:%8.2lf %s", "GPRINT:inbits:MAX:Max\\:%8.2lf %s\\n", "LINE1:outbits#002A97FF:Out", "GPRINT:outbits:LAST:Current\\:%8.2lf %s", "GPRINT:outbits:AVERAGE:Average\\:%8.2lf %s", "GPRINT:outbits:MAX:Max\\:%8.2lf %s");
$resm = rrd_graph("{$homedir}/tmp/" . $id . "_" . $port . "_1m.png", $rrm, count($rrm));
/* За год */
$rry = array("--start", "-1y", "--title={$row['1']}", "DEF:in={$homedir}/rrd/" . $id . "_" . $port . ".rrd:in:AVERAGE", "DEF:out={$homedir}/rrd/" . $id . "_" . $port . ".rrd:out:AVERAGE", "CDEF:inbits=in,8,*", "CDEF:outbits=out,8,*", "AREA:inbits#00CF00FF:In", "GPRINT:inbits:LAST: Current\\:%8.2lf %s", "GPRINT:inbits:AVERAGE:Average\\:%8.2lf %s", "GPRINT:inbits:MAX:Max\\:%8.2lf %s\\n", "LINE1:outbits#002A97FF:Out", "GPRINT:outbits:LAST:Current\\:%8.2lf %s", "GPRINT:outbits:AVERAGE:Average\\:%8.2lf %s", "GPRINT:outbits:MAX:Max\\:%8.2lf %s");
$resy = rrd_graph("{$homedir}/tmp/" . $id . "_" . $port . "_1y.png", $rry, count($rry));
/* Вывод графиков */
print "<h4>За час</h4>";
print "<img src=tmp/" . $id . "_" . $port . "_1h.png>";
print "<h4>За День</h4>";
print "<img src=tmp/" . $id . "_" . $port . "_1d.png>";
print "<h4>За Неделю</h4>";
print "<img src=tmp/" . $id . "_" . $port . "_1w.png>";
print "<h4>За Месяц</h4>";
print "<img src=tmp/" . $id . "_" . $port . "_1m.png>";
print "<h4>За Год</h4>";
print "<img src=tmp/" . $id . "_" . $port . "_1y.png>";
print "<br />";
print "<br />";
print "| <a href=/yamaps.php>Карта</a> | <a href=/>Полотенце</a> |<br /><br />";
?>
コード例 #16
0
ファイル: class.graphing.php プロジェクト: rbott/homegear-web
 function drawCurrentVsActualTempGraph($period, $peerId)
 {
     $options = $this->tempGraphOptions;
     $options[] = "--title=Actual Temp vs. Configured Temp on Peer " . $peerId . " (" . $period . ")";
     $options[] = "--vertical-label=°C";
     $options[] = "--start";
     $options[] = $this->graphPeriods[$period];
     $options[] = "--upper-limit=30";
     $i = 0;
     $this->colorIndex = 0;
     foreach ($this->devices as $device) {
         if ($device["type"] == "valve" && intval($device["peerId"]) == intval($peerId)) {
             $rrdPath = $this->rrdBasePath . "valves/peer_" . $device["peerId"] . ".rrd";
             if (isset($device["tempSensor"]) && file_exists($rrdPath)) {
                 $options[] = "DEF:temp" . $i . "=" . $rrdPath . ":temp:LAST";
                 $options[] = "LINE2:temp" . $i . $this->getColor() . ": Actual Temperature";
                 $options[] = "GPRINT:temp" . $i . ":LAST:%2.1lf°C";
                 $options[] = "DEF:configuredTemp" . $i . "=" . $rrdPath . ":configuredTemp:LAST";
                 $options[] = "LINE2:configuredTemp" . $i . $this->getColor() . ": Configured Temperature";
                 $options[] = "GPRINT:configuredTemp" . $i . ":LAST:%2.1lf°C";
                 $options[] = "COMMENT:\\n";
                 $i++;
             }
         }
     }
     if ($i == 0) {
         $options[] = "ERROR: Device " . $peerId . " not found or not a valve!";
     }
     if (!rrd_graph($this->rrdBasePath . "output/" . $peerId . "_CurrentVsActual_" . $period . ".gif", $options)) {
         echo "RRD ERROR: " . rrd_error() . "\n";
         print_r($options);
     }
 }
コード例 #17
0
ファイル: stats.php プロジェクト: rubixconsulting/postfixweb
function graph_err($range, $file)
{
    global $points_per_sample, $xpoints, $ypoints_err, $rrd, $rrd_virus, $color;
    $step = $range * $points_per_sample / $xpoints;
    rrd_graph($range, $file, $ypoints_err, " DEF:bounced={$rrd}:bounced:AVERAGE" . " DEF:mbounced={$rrd}:bounced:MAX" . " CDEF:rbounced='bounced,60,*'" . " CDEF:dbounced='bounced,UN,0,bounced,IF,{$step},*'" . " CDEF:sbounced='PREV,UN,dbounced,PREV,IF,dbounced,+'" . " CDEF:rmbounced='mbounced,60,*'" . " AREA:rbounced#" . $color['bounced'] . ":'Bounced '" . " GPRINT:sbounced:MAX:'total\\: %8.0lf msgs'" . " GPRINT:rbounced:AVERAGE:'avg\\: %5.2lf msgs/min'" . " GPRINT:rmbounced:MAX:'max\\: %4.0lf msgs/min\\l'" . " DEF:virus='{$rrd_virus}:virus:AVERAGE'" . " DEF:mvirus='{$rrd_virus}:virus:MAX'" . " CDEF:rvirus='virus,60,*'" . " CDEF:dvirus='virus,UN,0,virus,IF,{$step},*'" . " CDEF:svirus='PREV,UN,dvirus,PREV,IF,dvirus,+'" . " CDEF:rmvirus='mvirus,60,*'" . " STACK:rvirus#" . $color['virus'] . ":'Viruses '" . " GPRINT:svirus:MAX:'total\\: %8.0lf msgs'" . " GPRINT:rvirus:AVERAGE:'avg\\: %5.2lf msgs/min'" . " GPRINT:rmvirus:MAX:'max\\: %4.0lf msgs/min\\l'" . " DEF:spam='{$rrd_virus}:spam:AVERAGE'" . " DEF:mspam='{$rrd_virus}:spam:MAX'" . " CDEF:rspam='spam,60,*'" . " CDEF:dspam='spam,UN,0,spam,IF,{$step},*'" . " CDEF:sspam='PREV,UN,dspam,PREV,IF,dspam,+'" . " CDEF:rmspam='mspam,60,*'" . " STACK:rspam#" . $color['spam'] . ":'Spam    '" . " GPRINT:sspam:MAX:'total\\: %8.0lf msgs'" . " GPRINT:rspam:AVERAGE:'avg\\: %5.2lf msgs/min'" . " GPRINT:rmspam:MAX:'max\\: %4.0lf msgs/min\\l'" . " DEF:rejected='{$rrd}:rejected:AVERAGE'" . " DEF:mrejected='{$rrd}:rejected:MAX'" . " CDEF:rrejected='rejected,60,*'" . " CDEF:drejected='rejected,UN,0,rejected,IF,{$step},*'" . " CDEF:srejected='PREV,UN,drejected,PREV,IF,drejected,+'" . " CDEF:rmrejected='mrejected,60,*'" . " LINE2:rrejected#" . $color['rejected'] . ":'Rejected'" . " GPRINT:srejected:MAX:'total\\: %8.0lf msgs'" . " GPRINT:rrejected:AVERAGE:'avg\\: %5.2lf msgs/min'" . " GPRINT:rmrejected:MAX:'max\\: %4.0lf msgs/min\\l'");
}
コード例 #18
0
$in = $name[0];
$COMMUNITY = $name[1];
$IP = $name[2];
$PORT = $name[3];
$now = time();
$path = dirname(__FILE__);
$device = "{$COMMUNITY}" . "_" . "{$IP}" . "_" . "{$PORT}";
echo "<br>Graphs for the device with IP {$IP}, COMMUNITY {$COMMUNITY} and PORT {$PORT}<br>";
$a = array("-1d:Daily", "-1w:Weekly", "-1m:Monthly", "-1y:Yearly");
foreach ($a as $x) {
    $b = explode(':', $x);
    $span = $b[0];
    $name = $b[1];
    $rrdgraph = array("--slope-mode", "--start", "{$span}", "--end", $now, "--vertical-label", "Bytes per second");
    $color = str_pad(dechex(mt_rand(0, 0xffffff)), 6, '0', STR_PAD_LEFT);
    array_push($rrdgraph, "DEF:input{$in}={$device}.rrd:input{$in}:AVERAGE", "LINE:input{$in}#{$color}:Input{$in}", "GPRINT:input{$in}:LAST:Current Input = %6.2lf %SBps");
    $color = str_pad(dechex(mt_rand(0, 0xffffff)), 6, '0', STR_PAD_LEFT);
    array_push($rrdgraph, "DEF:output{$in}={$device}.rrd:output{$in}:AVERAGE", "LINE:output{$in}#{$color}:Output{$in}", "GPRINT:output{$in}:LAST:Current Output = %6.2lf %SBps");
    $ret = rrd_graph("{$path}/{$device}{$span}.png", $rrdgraph);
    echo rrd_error();
    echo "<br> {$name} Graph";
    echo "<br><img src='view.php?name={$device}{$span}'/><br>";
}
?>
        </center>
        
        </table>
        </div>
        </body>
</html>        
コード例 #19
0
ファイル: monitoring.php プロジェクト: DarneoStudio/bitrix
 protected static function getItemValue($hostname, $categoryId, $item, $param)
 {
     if (isset($item["VALUE"])) {
         return $item["VALUE"];
     }
     if (isset($item["VALUE_FUNC"])) {
         return call_user_func_array($item["VALUE_FUNC"], isset($item["FUNC_PARAMS"]) ? $item["FUNC_PARAMS"] : array());
     }
     if ((!$item["RRD"] || !$item["CF"]) && !$item["OPTIONS"]) {
         throw new \Exception("Monitoring param item in category " . $categoryId . " has no RRD or CF fields.");
     }
     if (isset($item["RRD"])) {
         $rrdFile = str_replace('##HOSTNAME##', $hostname, $item["RRD"]);
         $rrdPath = static::$rrdPath . "/" . $hostname . "/" . $rrdFile;
         $file = new \Bitrix\Main\IO\File($rrdPath);
         if (!$file->isExists()) {
             throw new \Bitrix\Main\IO\FileNotFoundException($rrdPath);
         }
         $first = \rrd_first($rrdPath);
         $last = \rrd_last($rrdPath);
     }
     if (isset($item["OPTIONS"])) {
         $arOpts = $item["OPTIONS"];
         $arOpts = str_replace('##HOSTNAME##', $hostname, $arOpts);
     } else {
         if ($item["CF"] == "MIN") {
             $agr = "MINIMUM";
         } elseif ($item["CF"] == "MAX") {
             $agr = "MAXIMUM";
         } else {
             $agr = $item["CF"];
         }
         if ($item["CF"] == "LAST") {
             $item["CF"] = "AVERAGE";
         }
         $format = isset($item["FORMAT"]) ? $item["FORMAT"] : "%6.2lf";
         $arOpts = array("DEF:val=" . $rrdPath . ":42:" . $item["CF"], "VDEF:vval=val," . $agr, "PRINT:vval:" . $format);
     }
     if (isset($item["RRD"])) {
         $arOpts[] = "--start";
         $arOpts[] = $first;
         $arOpts[] = "--end";
         $arOpts[] = $last;
     }
     $data = \rrd_graph("/dev/null", $arOpts);
     if (isset($item["DATA_FUNC"])) {
         $func = create_function('$data', $item["DATA_FUNC"]);
         if (is_callable($func)) {
             $result = $func($data);
         }
     } else {
         if (isset($data["calcpr"])) {
             $data["data"] = $data["calcpr"];
         }
         $result = static::extractRrdValue($data);
     }
     return $result;
 }