use Data::Dumper ();
our $Config = "/etc/collection.conf";
-our $TypesDB = "/usr/share/collectd/types.db";
our @DataDirs = ();
our @DontShowTypes = ();
our $LibDir;
our $Args = {};
-our $Types = {};
-read_types_db();
-
our $GraphDefs;
our $MetaGraphDefs = {};
load_graph_definitions ();
exit (main ());
-sub read_types_db
-{
- my $fh;
- open ($fh, "< $TypesDB") or confess ("open ($TypesDB): $!");
- while (my $line = <$fh>)
- {
- chomp ($line);
- $line =~ s/\s*(?:#.*)?$//;
- next if (!$line);
- my ($type, $specs) = split(m/\s+/, $line, 2);
- my @specs = split(m/,?\s+/, $specs);
- $Types->{$type} = [];
- foreach my $spec (@specs)
- {
- my ($name, $ds_type, $min, $max) = split(m/:/, $spec);
- push (@{$Types->{$type}}, $name);
- }
- }
- close ($fh);
-} # read_types_db
-
sub read_config
{
my $fh;
$file =~ s/:/\\:/g;
s/{file}/$file/ for (@rrd_args);
- s/{ds(\d+)}/$Types->{$gtype}[$1]/ for (@rrd_args);
RRDs::graph ('-', '-a', 'PNG', '-s', $start_time, '-t', $title, @RRDDefaultArgs, @rrd_args);
if (my $err = RRDs::error ())
'GPRINT:avg:LAST:%4.0lf Last\l'
],
entropy => ['-v', 'Bits',
- 'DEF:avg={file}:{ds0}:AVERAGE',
- 'DEF:min={file}:{ds0}:MIN',
- 'DEF:max={file}:{ds0}:MAX',
+ 'DEF:avg={file}:entropy:AVERAGE',
+ 'DEF:min={file}:entropy:MIN',
+ 'DEF:max={file}:entropy:MAX',
"AREA:max#$HalfBlue",
"AREA:min#$Canvas",
"LINE1:avg#$FullBlue:Bits",
'GPRINT:avg:LAST:%4.1lf Last\l'
],
frequency_offset => [ # NTPd
- 'DEF:ppm_avg={file}:{ds0}:AVERAGE',
- 'DEF:ppm_min={file}:{ds0}:MIN',
- 'DEF:ppm_max={file}:{ds0}:MAX',
+ 'DEF:ppm_avg={file}:ppm:AVERAGE',
+ 'DEF:ppm_min={file}:ppm:MIN',
+ 'DEF:ppm_max={file}:ppm:MAX',
"AREA:ppm_max#$HalfBlue",
"AREA:ppm_min#$Canvas",
"LINE1:ppm_avg#$FullBlue:{inst}",
'GPRINT:avg:LAST:%5.1lf%s Last\l'
],
time_offset => [ # NTPd
- 'DEF:s_avg={file}:{ds0}:AVERAGE',
- 'DEF:s_min={file}:{ds0}:MIN',
- 'DEF:s_max={file}:{ds0}:MAX',
+ 'DEF:s_avg={file}:seconds:AVERAGE',
+ 'DEF:s_min={file}:seconds:MIN',
+ 'DEF:s_max={file}:seconds:MAX',
"AREA:s_max#$HalfBlue",
"AREA:s_min#$Canvas",
"LINE1:s_avg#$FullBlue:{inst}",
'GPRINT:multimeter_avg:LAST:%4.1lf Last\l'
],
users => ['-v', 'Users',
- 'DEF:users_avg={file}:{ds0}:AVERAGE',
- 'DEF:users_min={file}:{ds0}:MIN',
- 'DEF:users_max={file}:{ds0}:MAX',
+ 'DEF:users_avg={file}:users:AVERAGE',
+ 'DEF:users_min={file}:users:MIN',
+ 'DEF:users_max={file}:users:MAX',
"AREA:users_max#$HalfBlue",
"AREA:users_min#$Canvas",
"LINE1:users_avg#$FullBlue:Users",