print "ok $ok_count $what\n";
}
-#makes things work when run without install
-use lib qw( ../libraries/perl-shared/blib/lib ../libraries/perl-shared/blib/arch );
-
#makes programm work AFTER install
-use lib qw( @prefix@/lib/perl ../lib/perl );
+use lib qw( @prefix@/lib/perl );
use strict;
use vars qw(@ISA $loaded);
my $GRUNS = 4;
my $RRD1 = "shared-demo.rrd";
my $RRD2 = "shared-demob.rrd";
-my $GIF1 = "shared-demo1.gif";
-my $GIF2 = "shared-demo2.gif";
+my $PNG1 = "shared-demo1.png";
+my $PNG2 = "shared-demo2.png";
my $time = 30*int(time/30);
my $START = $time-$RUNS*$STEP;
for (my $t=$START+1;
$t<$START+$STEP*$RUNS;
$t+=$STEP+int((rand()-0.5)*7)){
- $counter += 2500*sin($t/2000)*$STEP;
+ $counter += int(2500*sin($t/2000)*$STEP);
my $data = (1000+500*sin($t/1000)).":".
(1000+900*sin($t/2330)).":".
(2000*cos($t/1550)).":".
die "$0: unable to update `$RRD2': $ERROR\n";
}
-print "* Creating $GRUNS graphs: $GIF1 & $GIF2\n\n";
+print "* Creating $GRUNS graphs: $PNG1 & $PNG2\n\n";
my $now = $time;
for (my $i=0;$i<$GRUNS;$i++) {
- my @rrd_gifs = ($RRD1, $GIF1, $RRD2, $GIF2);
- while (@rrd_gifs) {
- my $RRD = shift(@rrd_gifs);
- my $GIF = shift(@rrd_gifs);
- my ($graphret,$xs,$ys) = RRDs::graph $GIF, "--title", 'Test GRAPH',
+ my @rrd_pngs = ($RRD1, $PNG1, $RRD2, $PNG2);
+ while (@rrd_pngs) {
+ my $RRD = shift(@rrd_pngs);
+ my $PNG = shift(@rrd_pngs);
+ my ($graphret,$xs,$ys) = RRDs::graph $PNG, "--title", 'Test GRAPH',
'--base', '1024',
"--vertical-label", 'Dummy Units', "--start", (-$RUNS*$STEP),
"--end", $time,
- "--interlace", "--imgformat","GIF",
+ "--interlace", "--imgformat","PNG",
"DEF:alpha=$RRD:a:AVERAGE",
"DEF:beta=$RRD:b:AVERAGE",
"DEF:gamma=$RRD:c:AVERAGE",
"VRULE:".($now-7200)."#008877:120 Minutes ago";
if ($ERROR = RRDs::error) {
- print "ERROR: $ERROR\n";
+ die "ERROR: $ERROR\n";
} else {
- print "GIF Size: ${xs}x${ys}\n";
+ print "Image Size: ${xs}x${ys}\n";
print "Graph Return:\n",(join "\n", @$graphret),"\n\n";
}
}
my ($start,$step,$names,$array) = RRDs::fetch $RRD1, "AVERAGE";
$ERROR = RRDs::error;
-print "ERROR: $ERROR\n" if $ERROR ;
+die "ERROR: $ERROR\n" if $ERROR ;
print "start=$start, step=$step\n";
print " ";
map {printf("%12s",$_)} @$names ;
+my ($start,$end,$step,$col_cnt,$legend,$data) =
+ RRDs::xport ("-m", 400,
+ "--start", "now-1day",
+ "--end", "now",
+ "DEF:alpha=$RRD1:a:AVERAGE",
+ "DEF:beta=$RRD1:d:AVERAGE",
+ "CDEF:calc=alpha,beta,+,2,/,100,*,102,/",
+ "XPORT:alpha:original ds",
+ "XPORT:calc:calculated values",
+ );
+
+my $ERROR = RRDs::error;
+die "$0: unable to xport: $ERROR\n" if $ERROR;
+
+print "\nrrdxport test:\n\n";
+print "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n";
+print "<xport>\n";
+print " <meta>\n";
+print " <start>$start</start>\n";
+print " <step>$step</step>\n";
+print " <end>$end</end>\n";
+print " <rows>", $#$data + 1, "</rows>\n";
+print " <columns>$col_cnt</columns>\n";
+print " <legend>\n";
+foreach my $entry (@$legend) {
+ print " <entry>$entry</entry>\n";
+}
+print " </legend>\n";
+print " </meta>\n";
+print " <data>\n";
+my $row_counter = 0;
+foreach my $row (@$data) {
+ $row_counter++;
+ print " <row id=\"$row_counter\"><t is=\"", scalar localtime($start), "\">$start</t>";
+ $start += $step;
+ foreach my $val (@$row) {
+ printf ("<v>%1.10e</v>",$val) if $val ne '';
+ print "<v>NaN</v>" if $val eq '';
+ }
+ print "</row>\n";
+}
+print " </data>\n";
+print "</xport>\n";