using Perl with rrdtool to create and update graphs
Hi guys,
im having real difficulty getting my head around perl and rrdtool and was hoping someone could help
I want to run a perl script from cron which retrieves the data every 5 mins, creates .rrd's if not already created, and updates the DS from the reultsHash or $key, then creates the graphs
Because the OID i use are dynamic i have to snmpwalk a table which is fine.
To obtain the data i use:
to prove it works i print out the data.
i want to create an .RRD for each pass so im trying to put this into a for loop:
so in princible i should be able to do the following, but the .rrd's dont get created ????
Am i doing something fundamentially wrong here ?
I would expect the creation of rrd's to have worked. I get the error
Use of uninitialized value in concatenation (.) or string at ./st.pl line 52.
Can anyone advise me on what this means??
Many thanks in advance
Jeffers
Last edited by pludi; 05-30-2010 at 07:51 AM..
Reason: Disabled smiles in code for readability
I am running a Informix-4GL program to insert/update/delete on a particular table (say xxx). Now I want to create a logfile in unix which will store the affected data(say xxx.*) along with user information (say uname,IP address etc.)
what command I should use from Informix-4GL ?
I have tried the... (0 Replies)
I need some help with creating graphs using the rrdtool. I have never used it before. I installed by yum install rrdtool.
Basically I have a txt file with these values
432
542
234
531
1004
Does anyone know the syntax of rrdtool to automatically take the values from the txt file and... (1 Reply)
Hi,
I need to create a csv file to store oracle query output. This report need to be created on hourly basis. The csv file report format as "Report_22_Sep_09_13IST.csv". I have the oracle query. Now i need to create and move the oracle query output to the report row by row starting from 3rd row.... (6 Replies)
Hi,
Has anyone used any perl modules to draw dashboard/gauge graphs similar to a speedometer? I am looking to create some graphs in perl. Please share your thoughts if there are any modules and an example script. Thanks (0 Replies)
Hi,
I am trying to install redhat into one of my machine, but during boot up from Redhat Dvd, it mention not able to detect my HDD and it need another driver to install into it.
Because the machine only have one driver update disc source which is my CD/DVD rom, so i would like to know... (9 Replies)
we create a HP-UX software depot with a new perl-modul. after installation of the software depot, the perl module
i can't find with instmodsh in the inventory for installed Perl modules.
- i have learned of using instmodsh command : i find out what modules are already installed on my system.
... (0 Replies)
I have data in a CSV file that looks like;
1353557880:1.111:123.3
1353557940:1.113:123.3
1353558000:1.118:123.3
1353558060:1.123:123.3
1353558120:1.218:123.3
I'm running the following;
while IFS=":" read d a b; do rrdtool update temp.rrd $d:$a:$b; done <temp6
It gives me the following... (2 Replies)
hi everyone,
I just began to be interested about the bash access.
I buy a time ago a Raspberry pi, I installed raspbmc and now I would like build a bash to copy everyday all new files inside my server directly on the hard drive in my Pi.
So my HDD is directly plug on my pi with usb connect,... (4 Replies)
I have this code that gives this error on Linux and will be grateful if you can help
import rrdtool
try:
ret_asd = rrdtool.update(myfile.rrd,'N:%s:%s' %(metric1, metric2));
except rrdtool.error, e:
print e
When i run the above i get the below error
except... (1 Reply)
Discussion started by: kaf3773
1 Replies
LEARN ABOUT SUSE
rrds
RRDs(3) User Contributed Perl Documentation RRDs(3)NAME
RRDs - Access RRDtool as a shared module
SYNOPSIS
use RRDs;
RRDs::error
RRDs::last ...
RRDs::info ...
RRDs::create ...
RRDs::update ...
RRDs::updatev ...
RRDs::graph ...
RRDs::fetch ...
RRDs::tune ...
RRDs::times(start, end)
RRDs::dump ...
RRDs::restore ...
RRDs::flushcached ...
DESCRIPTION
Calling Sequence
This module accesses RRDtool functionality directly from within Perl. The arguments to the functions listed in the SYNOPSIS are explained
in the regular RRDtool documentation. The command line call
rrdtool update mydemo.rrd --template in:out N:12:13
gets turned into
RRDs::update ("mydemo.rrd", "--template", "in:out", "N:12:13");
Note that
--template=in:out
is also valid.
The RRDs::times function takes two parameters: a "start" and "end" time. These should be specified in the AT-STYLE TIME SPECIFICATION
format used by RRDtool. See the rrdfetch documentation for a detailed explanation on how to specify time.
Error Handling
The RRD functions will not abort your program even when they can not make sense out of the arguments you fed them.
The function RRDs::error should be called to get the error status after each function call. If RRDs::error does not return anything then
the previous function has completed its task successfully.
use RRDs;
RRDs::update ("mydemo.rrd","N:12:13");
my $ERR=RRDs::error;
die "ERROR while updating mydemo.rrd: $ERR
" if $ERR;
Return Values
The functions RRDs::last, RRDs::graph, RRDs::info, RRDs::fetch and RRDs::times return their findings.
RRDs::last returns a single INTEGER representing the last update time.
$lastupdate = RRDs::last ...
RRDs::graph returns an ARRAY containing the x-size and y-size of the created image and a pointer to an array with the results of the PRINT
arguments.
($result_arr,$xsize,$ysize) = RRDs::graph ...
print "Imagesize: ${xsize}x${ysize}
";
print "Averages: ", (join ", ", @$averages);
RRDs::info returns a pointer to a hash. The keys of the hash represent the property names of the RRD and the values of the hash are the
values of the properties.
$hash = RRDs::info "example.rrd";
foreach my $key (keys %$hash){
print "$key = $$hash{$key}
";
}
RRDs::graphv takes the same parameters as RRDs::graph but it returns a pointer to hash. The hash returned contains meta information about
the graph. Like its size as well as the position of the graph area on the image. When calling with and empty filename than the contents of
the graph will be returned in the hash as well (key 'image').
RRDs::updatev also returns a pointer to hash. The keys of the hash are concatenated strings of a timestamp, RRA index, and data source name
for each consolidated data point (CDP) written to disk as a result of the current update call. The hash values are CDP values.
RRDs::fetch is the most complex of the pack regarding return values. There are 4 values. Two normal integers, a pointer to an array and a
pointer to a array of pointers.
my ($start,$step,$names,$data) = RRDs::fetch ...
print "Start: ", scalar localtime($start), " ($start)
";
print "Step size: $step seconds
";
print "DS names: ", join (", ", @$names)."
";
print "Data points: ", $#$data + 1, "
";
print "Data:
";
for my $line (@$data) {
print " ", scalar localtime($start), " ($start) ";
$start += $step;
for my $val (@$line) {
printf "%12.1f ", $val;
}
print "
";
}
RRDs::times returns two integers which are the number of seconds since epoch (1970-01-01) for the supplied "start" and "end" arguments,
respectively.
See the examples directory for more ways to use this extension.
NOTE
If you are manipulating the TZ variable you should also call the POSIX function tzset(3) to initialize all internal state of the library
for properly operating in the timezone of your choice.
use POSIX qw(tzset);
$ENV{TZ} = 'CET';
POSIX::tzset();
AUTHOR
Tobias Oetiker <tobi@oetiker.ch>
perl v5.12.1 2010-03-22 RRDs(3)