| RRD::Simple::Examples - Examples using RRD::Simple |
RRD::Simple::Examples - Examples using RRD::Simple
use strict;
use RRD::Simple;
my $cmd = "/usr/bin/vmstat 2 3";
my $rrdfile = "vmstat-cpu.rrd";
my $rrd = RRD::Simple->new( file => $rrdfile );
my @keys = ();
my %update = ();
open(PH,"-|",$cmd) or die qq{Unable to open file handle PH for command "$cmd": $!};
while (local $_ = <PH>) {
next if /---/;
s/^\s+|\s+$//g;
if (/\d+/ && @keys) {
@update{@keys} = split(/\s+/,$_);
} else { @keys = split(/\s+/,$_); }
}
close(PH) or die qq{Unable to close file handle PH for command "$cmd": $!};
my @cpukeys = splice(@keys,-4,4);
my %labels = (wa => "IO wait", id => "Idle", sy => "System", us => "User");
$rrd->create(map { ($_ => "GAUGE") } @cpukeys) unless -f $rrdfile;
$rrd->update(map { ($_ => $update{$_}) } @cpukeys);
This example shows how to set the minimum value to zero on a datasource using
the RRDs::tune function. Use -i or --minimum to set the minimum value,
and -a or --maximum to set the maximum value.
See http://www.rrdtool.org/rrdtool/doc/rrdtune.en.html.
use strict; use RRD::Simple; use RRDs;
my %update = ();
my $cmd = "/usr/bin/iostat -k";
open(PH,"-|",$cmd) or die qq{Unable to open file handle PH for command "$cmd": $!};
while (local $_ = <PH>) {
if (my ($dev,$r,$w) = $_ =~ /^([\w\d]+)\s+\S+\s+\S+\s+\S+\s+(\d+)\s+(\d+)$/) {
$update{$dev} = { "read" => $r, "write" => $w };
}
}
close(PH) or die qq{Unable to close file handle PH for command "$cmd": $!};
for my $dev (keys %update) {
my $rrdfile = "iostat-$dev.rrd";
my $rrd = RRD::Simple->new( file => $rrdfile );
unless (-f $rrdfile) {
$rrd->create(
map { ($_ => "DERIVE") } sort keys %{$update{$dev}}
);
RRDs::tune($rrdfile, "-i", "$_:0") for keys %{$update{$dev}};
}
$rrd->update(%{$update{$dev}});
}
The second (optional) parameter to the create method is the data retention period. Valid values are ``day'', ``week'', ``month'', ``year'', ``3years'' and ``mrtg''. The default value is ``mrtg''.
The ``mrtg'' data retention period uses a data stepping resolution of 300 seconds (5 minutes) and heartbeat of 600 seconds (10 minutes), whereas all the other data retention periods use a data stepping resolution of 60 seconds (1 minute) and heartbeat of 120 seconds (2 minutes).
use strict;
use RRD::Simple;
my $rrd = RRD::Simple->new( file => "myfile.rrd" );
my @period = qw(day week month year 3years mrtg);
$rrd->create($period[1],
datasource1 => "GAUGE",
datasource2 => "GAUGE",
datasource3 => "GAUGE",
);
Graph parameters are preserved and should be passed through to RRDs correctly: VDEF, CDEF, DEF, GPRINT, PRINT, COMMENT, HRULE, VRULE, LINE, AREA, TICK, SHIFT and STACK. Use the HRULE parameter to draw a horizontal rule on your graph.
use strict;
use RRD::Simple;
my $rrd = RRD::Simple->new( file => "frequency.rrd" );
$rrd->create("day",
Frequency => "GAUGE",
);
my $end = time();
my $start = $end - (60 * 60 * 24);
my $i = 0;
my $rand = int(rand(100));
for (my $t = $start; $t <= $end; $t += 60) {
$rrd->update($t,
Frequency => ( cos($i += 0.01) * 100 ) + $rand,
);
}
$rrd->graph(
sources => [ qw(Frequency) ],
"HRULE:FrequencyAVERAGE#00ff77:Average" => "",
);
use strict;
use RRD::Simple;
my $rrdfile = "vmstat-cpu.rrd";
my $rrd = RRD::Simple->new( file => $rrdfile );
$rrd->graph(
title => "CPU Utilisation",
vertical_label => "% percent",
upper_limit => 100,
lower_limit => 0,
rigid => "",
sources => [ qw(sy us wa id) ],
source_drawtypes => [ qw(AREA STACK STACK STACK) ],
extended_legend => 1,
);
The color parameter can be used to override the default colours
for standard elements of the graph. Valid elements are: BACK, CANVAS,
SHADEA, SHADEB, GRID, MGRID, FONT, AXIS, FRAME and ARROW. See
http://oss.oetiker.ch/rrdtool/doc/rrdgraph.en.html for further
information.
use strict;
use RRD::Simple;
my $rrd = RRD::Simple->new( file => "vmstat-cpu.rrd" );
$rrd->graph(
title => "CPU Utilisation",
source_colors => {
sy => "ff0000",
us => "00ff00",
wa => "0000ff",
id => "ffffff",
},
color => [ ( "BACK#F5F5FF", "SHADEA#C8C8FF",
"SHADEB#9696BE", "ARROW#61B51B",
"GRID#404852", "MGRID#67C6DE" ) ],
);
Copyright 2005,2006,2007 Nicola Worthington.
This software is licensed under The Apache Software License, Version 2.0.
http://www.apache.org/licenses/LICENSE-2.0
| RRD::Simple::Examples - Examples using RRD::Simple |