1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
use Test::More qw(no_plan);
use RRDTool::OO;
use strict;
use warnings;
my $count = 0;
use Log::Log4perl qw(:easy);
# Log::Log4perl->easy_init({
# level => $INFO,
# category => 'rrdtool',
# layout => '%m%n',
# });
### START POD HERE ###
# Constructor
my $rrd = RRDTool::OO->new(
file => "myrrdfile.rrd" );
# Create a round-robin database
$rrd->create(
step => 1, # one-second intervals
data_source => { name => "mydatasource",
type => "GAUGE",
heartbeat => 100,
},
archive => { rows => 5 });
ok(1, "Create");
# Update RRD with sample values, use current time.
for(1..3) {
$rrd->update($_);
ok(1, "Update");
sleep(2);
}
# Start fetching values from one day back,
# but skip undefined ones first
$rrd->fetch_start();
$rrd->fetch_skip_undef();
# Fetch stored values
while(my($time, $value) = $rrd->fetch_next()) {
$count++;
#print "$time: ",
# defined $value ? $value : "[undef]", "\n";
}
# Draw a graph in a PNG image
$rrd->graph(
image => "mygraph.png",
vertical_label => 'My Salary',
start => time() - 10,
draw => {
type => "area",
color => '0000FF',
}
);
### END POD HERE ###
# Area graph
$rrd->graph(
image => "mygraph.png",
vertical_label => 'My Salary',
start => time() - 10,
draw => {
type => "area",
color => '0000ff',
},
);
# Stacked graph
$rrd->graph(
image => "mygraph.png",
vertical_label => 'My Salary',
start => time() - 10,
draw => {
type => "area",
color => '0000ff',
},
draw => {
type => "stack",
color => '00ff00',
},
);
ok($count > 2, "Fetch");
END { #unlink "mygraph.png";
unlink "myrrdfile.rrd";
}
|