Merge branch 'processes' of /var/lib/git/collectd
[collectd.git] / contrib / collection.cgi
index b945b96..29ca2d0 100755 (executable)
@@ -106,6 +106,18 @@ our $GraphDefs;
                        'GPRINT:max:MAX:%5.1lf%sAh Max,',
                        'GPRINT:avg:LAST:%5.1lf%sAh Last\l'
                ],
+               charge_percent => [
+                       'DEF:avg={file}:percent:AVERAGE',
+                       'DEF:min={file}:percent:MIN',
+                       'DEF:max={file}:percent:MAX',
+                       "AREA:max#$HalfBlue",
+                       "AREA:min#$Canvas",
+                       "LINE1:avg#$FullBlue:Charge",
+                       'GPRINT:min:MIN:%5.1lf%s%% Min,',
+                       'GPRINT:avg:AVERAGE:%5.1lf%s%% Avg,',
+                       'GPRINT:max:MAX:%5.1lf%s%% Max,',
+                       'GPRINT:avg:LAST:%5.1lf%s%% Last\l'
+               ],
                cpu => ['DEF:user_avg={file}:user:AVERAGE',
                        'DEF:user_min={file}:user:MIN',
                        'DEF:user_max={file}:user:MAX',
@@ -271,6 +283,35 @@ our $GraphDefs;
                        'GPRINT:temp_max:MAX:%4.1lf Max,',
                        'GPRINT:temp_avg:LAST:%4.1lf Last\l'
                ],
+               if_packets => ['DEF:tx_min={file}:tx:MIN',
+                       'DEF:tx_avg={file}:tx:AVERAGE',
+                       'DEF:tx_max={file}:tx:MAX',
+                       'DEF:rx_min={file}:rx:MIN',
+                       'DEF:rx_avg={file}:rx:AVERAGE',
+                       'DEF:rx_max={file}:rx:MAX',
+                       'CDEF:overlap=tx_avg,rx_avg,GT,rx_avg,tx_avg,IF',
+                       'CDEF:mytime=tx_avg,TIME,TIME,IF',
+                       'CDEF:sample_len_raw=mytime,PREV(mytime),-',
+                       'CDEF:sample_len=sample_len_raw,UN,0,sample_len_raw,IF',
+                       'CDEF:tx_avg_sample=tx_avg,UN,0,tx_avg,IF,sample_len,*',
+                       'CDEF:tx_avg_sum=PREV,UN,0,PREV,IF,tx_avg_sample,+',
+                       'CDEF:rx_avg_sample=rx_avg,UN,0,rx_avg,IF,sample_len,*',
+                       'CDEF:rx_avg_sum=PREV,UN,0,PREV,IF,rx_avg_sample,+',
+                       "AREA:tx_avg#$HalfGreen",
+                       "AREA:rx_avg#$HalfBlue",
+                       "AREA:overlap#$HalfBlueGreen",
+                       "LINE1:tx_avg#$FullGreen:TX",
+                       'GPRINT:tx_avg:AVERAGE:%5.1lf%s Avg,',
+                       'GPRINT:tx_max:MAX:%5.1lf%s Max,',
+                       'GPRINT:tx_avg:LAST:%5.1lf%s Last',
+                       'GPRINT:tx_avg_sum:LAST:(ca. %4.0lf%s Total)\l',
+                       "LINE1:rx_avg#$FullBlue:RX",
+                       #'GPRINT:rx_min:MIN:%5.1lf %s Min,',
+                       'GPRINT:rx_avg:AVERAGE:%5.1lf%s Avg,',
+                       'GPRINT:rx_max:MAX:%5.1lf%s Max,',
+                       'GPRINT:rx_avg:LAST:%5.1lf%s Last',
+                       'GPRINT:rx_avg_sum:LAST:(ca. %4.0lf%s Total)\l'
+               ],
                load => ['DEF:s_avg={file}:shortterm:AVERAGE',
                        'DEF:s_min={file}:shortterm:MIN',
                        'DEF:s_max={file}:shortterm:MAX',
@@ -298,6 +339,18 @@ our $GraphDefs;
                        'GPRINT:l_max:MAX:%4.2lf Max,',
                        'GPRINT:l_avg:LAST:%4.2lf Last'
                ],
+               load_percent => [
+                       'DEF:avg={file}:percent:AVERAGE',
+                       'DEF:min={file}:percent:MIN',
+                       'DEF:max={file}:percent:MAX',
+                       "AREA:max#$HalfBlue",
+                       "AREA:min#$Canvas",
+                       "LINE1:avg#$FullBlue:Load",
+                       'GPRINT:min:MIN:%5.1lf%s%% Min,',
+                       'GPRINT:avg:AVERAGE:%5.1lf%s%% Avg,',
+                       'GPRINT:max:MAX:%5.1lf%s%% Max,',
+                       'GPRINT:avg:LAST:%5.1lf%s%% Last\l'
+               ],
                mails => ['DEF:rawgood={file}:good:AVERAGE',
                        'DEF:rawspam={file}:spam:AVERAGE',
                        'CDEF:good=rawgood,UN,0,rawgood,IF',
@@ -659,6 +712,85 @@ our $GraphDefs;
                        'GPRINT:sleeping_max:MAX:%5.1lf Max,',
                        'GPRINT:sleeping_avg:LAST:%5.1lf Last\l'
                ],
+               ps_rss => [
+                       'DEF:avg={file}:byte:AVERAGE',
+                       'DEF:min={file}:byte:MIN',
+                       'DEF:max={file}:byte:MAX',
+                       "AREA:avg#$HalfBlue",
+                       "LINE1:avg#$FullBlue:RSS",
+                       'GPRINT:min:MIN:%5.1lf%s Min,',
+                       'GPRINT:avg:AVERAGE:%5.1lf%s Avg,',
+                       'GPRINT:max:MAX:%5.1lf%s Max,',
+                       'GPRINT:avg:LAST:%5.1lf%s Last\l'
+               ],
+               ps_cputime => [
+                       'DEF:user_avg_raw={file}:user:AVERAGE',
+                       'DEF:user_min_raw={file}:user:MIN',
+                       'DEF:user_max_raw={file}:user:MAX',
+                       'DEF:syst_avg_raw={file}:syst:AVERAGE',
+                       'DEF:syst_min_raw={file}:syst:MIN',
+                       'DEF:syst_max_raw={file}:syst:MAX',
+                       'CDEF:user_avg=user_avg_raw,1000000,/',
+                       'CDEF:user_min=user_min_raw,1000000,/',
+                       'CDEF:user_max=user_max_raw,1000000,/',
+                       'CDEF:syst_avg=syst_avg_raw,1000000,/',
+                       'CDEF:syst_min=syst_min_raw,1000000,/',
+                       'CDEF:syst_max=syst_max_raw,1000000,/',
+                       'CDEF:user_syst=syst_avg,UN,0,syst_avg,IF,user_avg,+',
+                       "AREA:user_syst#$HalfBlue",
+                       "AREA:syst_avg#$HalfRed",
+                       "LINE1:user_syst#$FullBlue:User  ",
+                       'GPRINT:user_min:MIN:%5.1lf%s Min,',
+                       'GPRINT:user_avg:AVERAGE:%5.1lf%s Avg,',
+                       'GPRINT:user_max:MAX:%5.1lf%s Max,',
+                       'GPRINT:user_avg:LAST:%5.1lf%s Last\l',
+                       "LINE1:syst_avg#$FullRed:System",
+                       'GPRINT:syst_min:MIN:%5.1lf%s Min,',
+                       'GPRINT:syst_avg:AVERAGE:%5.1lf%s Avg,',
+                       'GPRINT:syst_max:MAX:%5.1lf%s Max,',
+                       'GPRINT:syst_avg:LAST:%5.1lf%s Last\l'
+               ],
+               ps_count => [
+                       'DEF:procs_avg={file}:processes:AVERAGE',
+                       'DEF:procs_min={file}:processes:MIN',
+                       'DEF:procs_max={file}:processes:MAX',
+                       'DEF:thrds_avg={file}:threads:AVERAGE',
+                       'DEF:thrds_min={file}:threads:MIN',
+                       'DEF:thrds_max={file}:threads:MAX',
+                       "AREA:thrds_avg#$HalfBlue",
+                       "AREA:procs_avg#$HalfRed",
+                       "LINE1:thrds_avg#$FullBlue:Threads  ",
+                       'GPRINT:thrds_min:MIN:%5.1lf Min,',
+                       'GPRINT:thrds_avg:AVERAGE:%5.1lf Avg,',
+                       'GPRINT:thrds_max:MAX:%5.1lf Max,',
+                       'GPRINT:thrds_avg:LAST:%5.1lf Last\l',
+                       "LINE1:procs_avg#$FullRed:Processes",
+                       'GPRINT:procs_min:MIN:%5.1lf Min,',
+                       'GPRINT:procs_avg:AVERAGE:%5.1lf Avg,',
+                       'GPRINT:procs_max:MAX:%5.1lf Max,',
+                       'GPRINT:procs_avg:LAST:%5.1lf Last\l'
+               ],
+               ps_pagefaults => [
+                       'DEF:minor_avg={file}:minflt:AVERAGE',
+                       'DEF:minor_min={file}:minflt:MIN',
+                       'DEF:minor_max={file}:minflt:MAX',
+                       'DEF:major_avg={file}:majflt:AVERAGE',
+                       'DEF:major_min={file}:majflt:MIN',
+                       'DEF:major_max={file}:majflt:MAX',
+                       'CDEF:minor_major=major_avg,UN,0,major_avg,IF,minor_avg,+',
+                       "AREA:minor_major#$HalfBlue",
+                       "AREA:major_avg#$HalfRed",
+                       "LINE1:minor_major#$FullBlue:Minor",
+                       'GPRINT:minor_min:MIN:%5.1lf%s Min,',
+                       'GPRINT:minor_avg:AVERAGE:%5.1lf%s Avg,',
+                       'GPRINT:minor_max:MAX:%5.1lf%s Max,',
+                       'GPRINT:minor_avg:LAST:%5.1lf%s Last\l',
+                       "LINE1:major_avg#$FullRed:Major",
+                       'GPRINT:major_min:MIN:%5.1lf%s Min,',
+                       'GPRINT:major_avg:AVERAGE:%5.1lf%s Avg,',
+                       'GPRINT:major_max:MAX:%5.1lf%s Max,',
+                       'GPRINT:major_avg:LAST:%5.1lf%s Last\l'
+               ],
                swap => [
                        'DEF:used_avg={file}:used:AVERAGE',
                        'DEF:used_min={file}:used:MIN',
@@ -715,13 +847,22 @@ our $GraphDefs;
                        'GPRINT:temp_max:MAX:%4.1lf Max,',
                        'GPRINT:temp_avg:LAST:%4.1lf Last\l'
                ],
+               timeleft => [
+                       'DEF:avg={file}:timeleft:AVERAGE',
+                       'DEF:min={file}:timeleft:MIN',
+                       'DEF:max={file}:timeleft:MAX',
+                       "AREA:max#$HalfBlue",
+                       "AREA:min#$Canvas",
+                       "LINE1:avg#$FullBlue:Time left [min]",
+                       'GPRINT:min:MIN:%5.1lf%s Min,',
+                       'GPRINT:avg:AVERAGE:%5.1lf%s Avg,',
+                       'GPRINT:max:MAX:%5.1lf%s Max,',
+                       'GPRINT:avg:LAST:%5.1lf%s Last\l'
+               ],
                time_offset => [ # NTPd
-                       'DEF:ms_avg={file}:ms:AVERAGE',
-                       'DEF:ms_min={file}:ms:MIN',
-                       'DEF:ms_max={file}:ms:MAX',
-                       'CDEF:s_avg=ms_avg,1000,/',
-                       'CDEF:s_min=ms_min,1000,/',
-                       'CDEF:s_max=ms_max,1000,/',
+                       '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}",
@@ -883,6 +1024,7 @@ our $GraphDefs;
                ],
        };
        $GraphDefs->{'disk'} = $GraphDefs->{'partition'};
+       $GraphDefs->{'if_errors'} = $GraphDefs->{'if_packets'};
        $GraphDefs->{'meminfo'} = $GraphDefs->{'memory'};
        $GraphDefs->{'sensors'} = $GraphDefs->{'temperature'};
 
@@ -896,6 +1038,7 @@ our $GraphArgs =
        apache_requests => ['-t', 'apache requests', '-v', 'Requests/s'],
        apache_scoreboard => ['-t', 'apache scoreboard {inst}', '-v', 'Processes'],
        charge => ['-t', '{host} charge', '-v', 'Ampere hours'],
+       charge_percent => ['-t', '{host} charge', '-v', 'Percent'],
        cpu => ['-t', '{host} cpu{inst} usage', '-v', 'Percent', '-l', '0'],
        cpufreq => ['-t', '{host} cpu{inst} usage', '-v', 'Mhz'],
        current => ['-t', '{host} current', '-v', 'Ampere'],
@@ -906,7 +1049,10 @@ our $GraphArgs =
        fanspeed => ['-t', '{host} fanspeed {inst}', '-v', 'rpm'],
        frequency_offset => ['-t', 'NTPd frequency offset ({inst})', '-v', 'Parts per million'],
        hddtemp => ['-t', '{host} hdd temperature {inst}', '-v', '°Celsius'],
+       if_errors => ['-t', '{host} {inst} errors', '-v', 'Errors/s'],
+       if_packets => ['-t', '{host} {inst} packets', '-v', 'Packets/s'],
        load => ['-t', '{host} load average', '-v', 'System load', '-X', '0'],
+       load_percent => ['-t', '{host} load', '-v', 'Percent'],
        mails   => ['-t', '{host} mail count', '-v', 'Amount', '-X', '0'],
        memory => ['-t', '{host} memory usage', '-v', 'Bytes', '-b', '1024', '-l', '0'],
        mysql_commands => ['-t', 'mysql command {inst}', '-v', 'Issues/s' ],
@@ -917,9 +1063,14 @@ our $GraphArgs =
        partition => ['-t', '{host} partition {inst} usage', '-v', 'Byte/s'],
        ping => ['-t', '{host} ping to {inst}', '-v', 'ms'],
        processes => ['-t', '{host} processes', '-v', 'Processes'],
+       ps_rss => ['-t', '{host} process {inst} RSS', '-v', 'Bytes', '-b', '1024'],
+       ps_cputime => ['-t', '{host} process {inst} CPU usage', '-v', 'Seconds'],
+       ps_count => ['-t', '{host} process {inst} count', '-v', 'Threads/Processes'],
+       ps_pagefaults => ['-t', '{host} process {inst} pagefaults', '-v', 'Pagefaults/s'],
        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'],
+       timeleft => ['-t', '{host} UPS time left', '-v', 'Time [min]'],
        time_offset => ['-t', 'NTPd time offset ({inst})', '-v', 'Seconds'],
        time_dispersion => ['-t', 'NTPd time dispersion ({inst})', '-v', 'Seconds'],
        traffic => ['-t', '{host} {inst} traffic', '-v', 'Bit/s'],