[mrtg] Re: rrdtool and php
Jeremy Shaffner
jshaffner at dmisi.com
Thu Apr 10 18:16:20 MEST 2003
On Thursday, April 10, 2003, at 04:23 AM, Baker, Brendon wrote:
> Hi
>
> Does anyone have some example php code interacting with rrdtool
> databases. I
> would like to start playing around with this a bit.
There was sample code included with rrd-php but here's what I've done
with it...
In this example, my rrd file contains two DS's, 'foo' and 'bar'.
.
.
.
$opts = array("AVERAGE", "--start", "end-1month");
$rrd = rrd_fetch($rrdfile, $opts, count($opts));
if (!is_array($rrd)) {
$err = rrd_error();
echo "rrd_fetch() failed: $err\n";
exit;
}
$numcolumns = count($rrd[ds_namv]);
$numrows = count($rrd[data]) / $numcolumns;
# Put the data into arrays using variable variables so that the names
for the arrays
# are created from the names of the DS's (columns).
for ($row = 0; $row < $numrows; $row++) {
for ($column = 0; $column < $numcolumns; $column++) {
$element = $row * $numcolumns + $column;
${$rrd[ds_namv][$column]}[$row] = round($rrd[data][$element]);
}
}
# If NaN then set it to 0
# I know ahead of time that there are two columns named foo and bar
for ($row = 0; $row < $numrows; $row++) {
if (is_nan($foo[$row]) || is_nan($bar[$row])) {
$foo[$row] = 0;
$bar[$row] = 0;
}
}
.
.
.
$foo and $bar now contain all the values and you can step through them
as you wish. I plug them into JpGraph.
All this work isn't strictly necessary. You can do what you need with
the data during the nested for loop too. I go through the trouble of
creating arrays so that it's similar to dealing with SQL DB's.
> Also........is the
> rrd-php module installed by default.
>
No it's not.
-Jeremy
--
Unsubscribe mailto:mrtg-request at list.ee.ethz.ch?subject=unsubscribe
Archive http://www.ee.ethz.ch/~slist/mrtg
FAQ http://faq.mrtg.org Homepage http://www.mrtg.org
WebAdmin http://www.ee.ethz.ch/~slist/lsg2.cgi
More information about the mrtg
mailing list