'GPRINT:total_max_ms:MAX:%5.1lf%s Max,',
'GPRINT:total_avg_ms:LAST:%5.1lf%s Last'
],
+ fanspeed => [
+ 'DEF:temp_avg={file}:value:AVERAGE',
+ 'DEF:temp_min={file}:value:MIN',
+ 'DEF:temp_max={file}:value:MAX',
+ "AREA:temp_max#$HalfBlue",
+ "AREA:temp_min#$Canvas",
+ "LINE1:temp_avg#$FullBlue:RPM",
+ 'GPRINT:temp_min:MIN:%4.1lf Min,',
+ 'GPRINT:temp_avg:AVERAGE:%4.1lf Avg,',
+ 'GPRINT:temp_max:MAX:%4.1lf Max,',
+ 'GPRINT:temp_avg:LAST:%4.1lf Last\l'
+ ],
hddtemp => [
'DEF:temp_avg={file}:value:AVERAGE',
'DEF:temp_min={file}:value:MIN',
'DEF:free_max={file}:free:MAX',
'DEF:buffers_max={file}:buffers:MAX',
'DEF:cached_max={file}:cached:MAX',
- 'CDEF:free_cached_buffers_used=free_avg,cached_avg,+,buffers_avg,+,used_avg,+',
- 'CDEF:cached_buffers_used=cached_avg,buffers_avg,+,used_avg,+',
+ 'CDEF:cached_avg_nn=cached_avg,UN,0,cached_avg,IF',
+ 'CDEF:buffers_avg_nn=buffers_avg,UN,0,buffers_avg,IF',
+ 'CDEF:free_cached_buffers_used=free_avg,cached_avg_nn,+,buffers_avg_nn,+,used_avg,+',
+ 'CDEF:cached_buffers_used=cached_avg,buffers_avg_nn,+,used_avg,+',
'CDEF:buffers_used=buffers_avg,used_avg,+',
"AREA:free_cached_buffers_used#$HalfGreen",
"AREA:cached_buffers_used#$HalfBlue",
'GPRINT:sleeping_max:MAX:%5.1lf Max,',
'GPRINT:sleeping_avg:LAST:%5.1lf Last\l'
],
- sensors => [
- 'DEF:temp_avg={file}:value:AVERAGE',
- 'DEF:temp_min={file}:value:MIN',
- 'DEF:temp_max={file}:value:MAX',
- "AREA:temp_max#$HalfBlue",
- "AREA:temp_min#$Canvas",
- "LINE1:temp_avg#$FullBlue:Value",
- 'GPRINT:temp_min:MIN:%4.1lf Min,',
- 'GPRINT:temp_avg:AVERAGE:%4.1lf Avg,',
- 'GPRINT:temp_max:MAX:%4.1lf Max,',
- 'GPRINT:temp_avg:LAST:%4.1lf Last\l'
- ],
swap => [
'DEF:used_avg={file}:used:AVERAGE',
'DEF:used_min={file}:used:MIN',
'GPRINT:used_max:MAX:%5.1lf%s Max,',
'GPRINT:used_avg:LAST:%5.1lf%s Last\l'
],
+ temperature => [
+ 'DEF:temp_avg={file}:value:AVERAGE',
+ 'DEF:temp_min={file}:value:MIN',
+ 'DEF:temp_max={file}:value:MAX',
+ "AREA:temp_max#$HalfBlue",
+ "AREA:temp_min#$Canvas",
+ "LINE1:temp_avg#$FullBlue:Value",
+ 'GPRINT:temp_min:MIN:%4.1lf Min,',
+ 'GPRINT:temp_avg:AVERAGE:%4.1lf Avg,',
+ 'GPRINT:temp_max:MAX:%4.1lf Max,',
+ 'GPRINT:temp_avg:LAST:%4.1lf Last\l'
+ ],
traffic => ['DEF:out_min_raw={file}:outgoing:MIN',
'DEF:out_avg_raw={file}:outgoing:AVERAGE',
'DEF:out_max_raw={file}:outgoing:MAX',
'GPRINT:max:MAX:%5.1lf%sV Max,',
'GPRINT:avg:LAST:%5.1lf%sV Last\l'
],
- threads => [
+ apcups_volt => [
+ 'DEF:line_avg={file}:linev:AVERAGE',
+ 'DEF:line_min={file}:linev:MIN',
+ 'DEF:line_max={file}:linev:MAX',
+ 'DEF:out_avg={file}:outputv:AVERAGE',
+ 'DEF:out_min={file}:outputv:MIN',
+ 'DEF:out_max={file}:outputv:MAX',
+ #"AREA:line_max#$HalfBlue",
+ #"AREA:line_min#$Canvas",
+ #"AREA:out_avg#$HalfGreen",
+ "LINE1:line_avg#$FullBlue:Line Volt",
+ 'GPRINT:line_min:MIN:%5.1lf%sV Min,',
+ 'GPRINT:line_avg:AVERAGE:%5.1lf%sV Avg,',
+ 'GPRINT:line_max:MAX:%5.1lf%sV Max,',
+ 'GPRINT:line_avg:LAST:%5.1lf%sV Last\l',
+ "LINE2:out_avg#$FullGreen:Out Volt",
+ 'GPRINT:out_min:MIN:%5.1lf%sV Min,',
+ 'GPRINT:out_avg:AVERAGE:%5.1lf%sV Avg,',
+ 'GPRINT:out_max:MAX:%5.1lf%sV Max,',
+ 'GPRINT:out_avg:LAST:%5.1lf%sV Last\l'
+ ],
+ apcups_bvolt => [
+ 'DEF:bvolt_avg={file}:battv:AVERAGE',
+ 'DEF:bvolt_min={file}:battv:MIN',
+ 'DEF:bvolt_max={file}:battv:MAX',
+ "AREA:bvolt_max#$HalfBlue",
+ "LINE1:bvolt_avg#$FullBlue:Batt Volt",
+ 'GPRINT:bvolt_min:MIN:%5.1lf%sV Min,',
+ 'GPRINT:bvolt_avg:AVERAGE:%5.1lf%sV Avg,',
+ 'GPRINT:bvolt_max:MAX:%5.1lf%sV Max,',
+ 'GPRINT:bvolt_avg:LAST:%5.1lf%sV Last\l',
+ ],
+ apcups_load => [
+ 'DEF:load_avg={file}:loadpct:AVERAGE',
+ 'DEF:load_min={file}:loadpct:MIN',
+ 'DEF:load_max={file}:loadpct:MAX',
+ "AREA:load_max#$HalfBlue",
+ "LINE1:load_avg#$FullBlue:Batt load",
+ 'GPRINT:load_min:MIN:%5.1lf%s%% Min,',
+ 'GPRINT:load_avg:AVERAGE:%5.1lf%s%% Avg,',
+ 'GPRINT:load_max:MAX:%5.1lf%s%% Max,',
+ 'GPRINT:load_avg:LAST:%5.1lf%s%% Last\l',
+ ],
+ apcups_charge => [
+ 'DEF:charge_avg={file}:bcharge:AVERAGE',
+ 'DEF:charge_min={file}:bcharge:MIN',
+ 'DEF:charge_max={file}:bcharge:MAX',
+ "AREA:charge_max#$HalfBlue",
+ "LINE1:charge_avg#$FullBlue:Batt Charge",
+ 'GPRINT:charge_min:MIN:%5.1lf%s%% Min,',
+ 'GPRINT:charge_avg:AVERAGE:%5.1lf%s%% Avg,',
+ 'GPRINT:charge_max:MAX:%5.1lf%s%% Max,',
+ 'GPRINT:charge_avg:LAST:%5.1lf%s%% Last\l',
+ ],
+ apcups_time => [
+ 'DEF:time_avg={file}:timeleft:AVERAGE',
+ 'DEF:time_min={file}:timeleft:MIN',
+ 'DEF:time_max={file}:timeleft:MAX',
+ "AREA:time_max#$HalfBlue",
+ "LINE1:time_avg#$FullBlue:Time Avail",
+ 'GPRINT:time_min:MIN:%5.1lf%smin Min,',
+ 'GPRINT:time_avg:AVERAGE:%5.1lf%smin Avg,',
+ 'GPRINT:time_max:MAX:%5.1lf%smin Max,',
+ 'GPRINT:time_avg:LAST:%5.1lf%smin Last\l',
+ ],
+ apcups_temp => [
+ 'DEF:temp_avg={file}:itemp:AVERAGE',
+ 'DEF:temp_min={file}:itemp:MIN',
+ 'DEF:temp_max={file}:itemp:MAX',
+ "AREA:temp_max#$HalfBlue",
+ "LINE1:temp_avg#$FullBlue:Temp Avail",
+ 'GPRINT:temp_min:MIN:%5.1lf%s° Min,',
+ 'GPRINT:temp_avg:AVERAGE:%5.1lf%s° Avg,',
+ 'GPRINT:temp_max:MAX:%5.1lf%s° Max,',
+ 'GPRINT:temp_avg:LAST:%5.1lf%s° Last\l',
+ ],
+ apcups_freq => [
+ 'DEF:freq_avg={file}:linefreq:AVERAGE',
+ 'DEF:freq_min={file}:linefreq:MIN',
+ 'DEF:freq_max={file}:linefreq:MAX',
+ "AREA:freq_max#$HalfBlue",
+ "LINE1:freq_avg#$FullBlue:Line Freq",
+ 'GPRINT:freq_min:MIN:%5.1lf%sHz Min,',
+ 'GPRINT:freq_avg:AVERAGE:%5.1lf%sHz Avg,',
+ 'GPRINT:freq_max:MAX:%5.1lf%sHz Max,',
+ 'GPRINT:freq_avg:LAST:%5.1lf%sHz Last\l',
+ ],
+ vs_threads => [
"DEF:total_avg={file}:total:AVERAGE",
"DEF:total_min={file}:total:MIN",
"DEF:total_max={file}:total:MAX",
};
$GraphDefs->{'disk'} = $GraphDefs->{'partition'};
$GraphDefs->{'meminfo'} = $GraphDefs->{'memory'};
+ $GraphDefs->{'sensors'} = $GraphDefs->{'temperature'};
}
our $GraphArgs =
#disk => ['-t', '{host} disk {inst} IO wait', '-v', 'Seconds'],
df => ['-t', '{host}:{inst} usage', '-v', 'Percent', '-l', '0'],
disk => ['-t', '{host} disk {inst} usage', '-v', 'Byte/s'],
+ fanspeed => ['-t', '{host} fanspeed {inst}', '-v', 'rpm'],
hddtemp => ['-t', '{host} hdd temperature {inst}', '-v', '°Celsius'],
load => ['-t', '{host} load average', '-v', 'System load', '-X', '0'],
mails => ['-t', '{host} mail count', '-v', 'Amount', '-X', '0'],
processes => ['-t', '{host} processes', '-v', 'Processes'],
sensors => ['-t', '{host} sensor {inst}', '-v', '°Celsius'],
swap => ['-t', '{host} swap usage', '-v', 'Bytes', '-b', '1024', '-l', '0'],
+ temperature => ['-t', '{host} temperature {inst}', '-v', '°Celsius'],
traffic => ['-t', '{host} {inst} traffic', '-v', 'Bit/s'],
users => ['-t', '{host} users', '-v', 'Users'],
voltage => ['-t', '{host} voltage', '-v', 'Volts'],
- threads => ['-t', '{host} threads', '-v', 'Threads'],
+ apcups_volt => ['-t', '{host} APC voltage {inst}', '-v', 'Volts AC'],
+ apcups_bvolt => ['-t', '{host} APC Batt voltage {inst}', '-v', 'Volts DC'],
+ apcups_load => ['-t', '{host} APC Load {inst}', '-v', 'Percent'],
+ apcups_charge => ['-t', '{host} APC Batt Charge {inst}', '-v', 'Percent'],
+ apcups_time => ['-t', '{host} APC Time Left {inst}', '-v', 'Minutes'],
+ apcups_temp => ['-t', '{host} APC Internal Temp {inst}', '-v', '°Celsius'],
+ apcups_freq => ['-t', '{host} APC Line Freq {inst}', '-v', 'Hz'],
+ vs_threads => ['-t', '{host} threads', '-v', 'Threads'],
vs_memory => ['-t', '{host} memory usage', '-v', 'Bytes'],
vs_processes => ['-t', '{host} processes', '-v', 'Processes'],
};
cpu => \&output_graph_cpu,
cpufreq => 1,
disk => 1,
+ apcups_volt => 1,
+ apcups_bvolt => 1,
+ apcups_load => 1,
+ apcups_charge => 1,
+ apcups_time => 1,
+ apcups_temp => 1,
+ apcups_freq => 1,
load => 0,
mails => 0,
memory => 0,
ping => \&output_graph_ping,
sensors => 1,
traffic => 1,
- users => 1
+ users => 1
};
our @Info;
$Inst = $files->{$Type}[0];
}
+ #push (@cmd, '-', '-a', 'PNG', '-s', $TimeSpan, '-w', 800, '-h', 150);
push (@cmd, '-', '-a', 'PNG', '-s', $TimeSpan);
push (@cmd, @{$GraphArgs->{$Type}}) if (defined ($GraphArgs->{$Type}));
print <<HTML;
</ul>
+ <h3>Hourly</h3>
+ <div><img src="$MySelf$RelDir/$Type/hour" /></div>
<h3>Daily</h3>
<div><img src="$MySelf$RelDir/$Type/day" /></div>
<h3>Weekly</h3>
}
print <<HTML;
+ <h3>Hourly</h3>
+ <div><img src="$MySelf$RelDir/$ext/hour" /></div>
<h3>Daily</h3>
<div><img src="$MySelf$RelDir/$ext/day" /></div>
<h3>Weekly</h3>
$AbsDir = $Config->{'Directory'};
$RelDir = '';
- while (@info and -d $AbsDir . '/' . $Info[0])
+ while (@info and -d $AbsDir . '/' . $info[0])
{
my $new = shift (@info);
next if ($new =~ m/^\./);