X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=contrib%2Fcollection.cgi;h=cbdb76e846df35eed803e7de3940c03d00b98bdd;hb=bf90793e82989b1c36fe8f3b66b9c9fe05c9532d;hp=4d1ec894add99dd0d819e668baa1d8a3c13cf8fd;hpb=2760cc10311aac2e86da335dcb982eaf2db6bff3;p=collectd.git diff --git a/contrib/collection.cgi b/contrib/collection.cgi index 4d1ec894..cbdb76e8 100755 --- a/contrib/collection.cgi +++ b/contrib/collection.cgi @@ -1016,6 +1016,18 @@ sub load_graph_definitions 'GPRINT:max:MAX:%5.1lf%sAh Max,', 'GPRINT:avg:LAST:%5.1lf%sAh Last\l' ], + connections => ['-v', 'Connections', + 'DEF:avg={file}:value:AVERAGE', + 'DEF:min={file}:value:MIN', + 'DEF:max={file}:value:MAX', + "AREA:max#$HalfBlue", + "AREA:min#$Canvas", + "LINE1:avg#$FullBlue:Connections", + 'GPRINT:min:MIN:%4.1lf Min,', + 'GPRINT:avg:AVERAGE:%4.1lf Avg,', + 'GPRINT:max:MAX:%4.1lf Max,', + 'GPRINT:avg:LAST:%4.1lf Last\l' + ], cpu => ['-v', 'CPU load', 'DEF:avg={file}:value:AVERAGE', 'DEF:min={file}:value:MIN', @@ -1278,9 +1290,9 @@ sub load_graph_definitions 'GPRINT:avg:LAST:%4.1lf Last\l' ], spam_check => [ - 'DEF:avg={file}:hits:AVERAGE', - 'DEF:min={file}:hits:MIN', - 'DEF:max={file}:hits:MAX', + 'DEF:avg={file}:value:AVERAGE', + 'DEF:min={file}:value:MIN', + 'DEF:max={file}:value:MAX', "AREA:max#$HalfMagenta", "AREA:min#$Canvas", "LINE1:avg#$FullMagenta:Count ", @@ -1289,6 +1301,18 @@ sub load_graph_definitions 'GPRINT:max:MAX:%4.1lf Max,', 'GPRINT:avg:LAST:%4.1lf Last\l' ], + conntrack => ['-v', 'Entries', + 'DEF:avg={file}:entropy:AVERAGE', + 'DEF:min={file}:entropy:MIN', + 'DEF:max={file}:entropy:MAX', + "AREA:max#$HalfBlue", + "AREA:min#$Canvas", + "LINE1:avg#$FullBlue:Count", + 'GPRINT:min:MIN:%4.0lf Min,', + 'GPRINT:avg:AVERAGE:%4.0lf Avg,', + 'GPRINT:max:MAX:%4.0lf Max,', + 'GPRINT:avg:LAST:%4.0lf Last\l' + ], entropy => ['-v', 'Bits', 'DEF:avg={file}:entropy:AVERAGE', 'DEF:min={file}:entropy:MIN', @@ -1599,6 +1623,89 @@ sub load_graph_definitions 'GPRINT:spam:LAST:%4.1lf Last', 'HRULE:0#000000' ], + memcached_command => ['-v', 'Commands', + 'DEF:avg={file}:value:AVERAGE', + 'DEF:min={file}:value:MIN', + 'DEF:max={file}:value:MAX', + "AREA:max#$HalfBlue", + "AREA:min#$Canvas", + "LINE1:avg#$FullBlue:Commands", + 'GPRINT:min:MIN:%5.1lf%s Min,', + 'GPRINT:avg:AVERAGE:%5.1lf Avg,', + 'GPRINT:max:MAX:%5.1lf Max,', + 'GPRINT:avg:LAST:%5.1lf Last\l' + ], + memcached_connections => ['-v', 'Connections', + 'DEF:avg={file}:value:AVERAGE', + 'DEF:min={file}:value:MIN', + 'DEF:max={file}:value:MAX', + "AREA:max#$HalfBlue", + "AREA:min#$Canvas", + "LINE1:avg#$FullBlue:Connections", + 'GPRINT:min:MIN:%4.1lf Min,', + 'GPRINT:avg:AVERAGE:%4.1lf Avg,', + 'GPRINT:max:MAX:%4.1lf Max,', + 'GPRINT:avg:LAST:%4.1lf Last\l' + ], + memcached_items => ['-v', 'Items', + 'DEF:avg={file}:value:AVERAGE', + 'DEF:min={file}:value:MIN', + 'DEF:max={file}:value:MAX', + "AREA:max#$HalfBlue", + "AREA:min#$Canvas", + "LINE1:avg#$FullBlue:Items", + 'GPRINT:min:MIN:%4.1lf Min,', + 'GPRINT:avg:AVERAGE:%4.1lf Avg,', + 'GPRINT:max:MAX:%4.1lf Max,', + 'GPRINT:avg:LAST:%4.1lf Last\l' + ], + memcached_octets => ['-v', 'Bits/s', + 'DEF:out_min={file}:tx:MIN', + 'DEF:out_avg={file}:tx:AVERAGE', + 'DEF:out_max={file}:tx:MAX', + 'DEF:inc_min={file}:rx:MIN', + 'DEF:inc_avg={file}:rx:AVERAGE', + 'DEF:inc_max={file}:rx:MAX', + 'CDEF:mytime=out_avg,TIME,TIME,IF', + 'CDEF:sample_len_raw=mytime,PREV(mytime),-', + 'CDEF:sample_len=sample_len_raw,UN,0,sample_len_raw,IF', + 'CDEF:out_avg_sample=out_avg,UN,0,out_avg,IF,sample_len,*', + 'CDEF:out_avg_sum=PREV,UN,0,PREV,IF,out_avg_sample,+', + 'CDEF:inc_avg_sample=inc_avg,UN,0,inc_avg,IF,sample_len,*', + 'CDEF:inc_avg_sum=PREV,UN,0,PREV,IF,inc_avg_sample,+', + 'CDEF:out_bit_min=out_min,8,*', + 'CDEF:out_bit_avg=out_avg,8,*', + 'CDEF:out_bit_max=out_max,8,*', + 'CDEF:inc_bit_min=inc_min,8,*', + 'CDEF:inc_bit_avg=inc_avg,8,*', + 'CDEF:inc_bit_max=inc_max,8,*', + 'CDEF:overlap=out_bit_avg,inc_bit_avg,GT,inc_bit_avg,out_bit_avg,IF', + "AREA:out_bit_avg#$HalfGreen", + "AREA:inc_bit_avg#$HalfBlue", + "AREA:overlap#$HalfBlueGreen", + "LINE1:out_bit_avg#$FullGreen:Written", + 'GPRINT:out_bit_avg:AVERAGE:%5.1lf%s Avg,', + 'GPRINT:out_bit_max:MAX:%5.1lf%s Max,', + 'GPRINT:out_bit_avg:LAST:%5.1lf%s Last', + 'GPRINT:out_avg_sum:LAST:(ca. %5.1lf%sB Total)\l', + "LINE1:inc_bit_avg#$FullBlue:Read ", + 'GPRINT:inc_bit_avg:AVERAGE:%5.1lf%s Avg,', + 'GPRINT:inc_bit_max:MAX:%5.1lf%s Max,', + 'GPRINT:inc_bit_avg:LAST:%5.1lf%s Last', + 'GPRINT:inc_avg_sum:LAST:(ca. %5.1lf%sB Total)\l' + ], + memcached_ops => ['-v', 'Ops', + 'DEF:avg={file}:value:AVERAGE', + 'DEF:min={file}:value:MIN', + 'DEF:max={file}:value:MAX', + "AREA:max#$HalfBlue", + "AREA:min#$Canvas", + "LINE1:avg#$FullBlue:Ops", + 'GPRINT:min:MIN:%4.1lf Min,', + 'GPRINT:avg:AVERAGE:%4.1lf Avg,', + 'GPRINT:max:MAX:%4.1lf Max,', + 'GPRINT:avg:LAST:%4.1lf Last\l' + ], memory => ['-b', '1024', '-v', 'Bytes', 'DEF:avg={file}:value:AVERAGE', 'DEF:min={file}:value:MIN', @@ -1953,6 +2060,76 @@ sub load_graph_definitions 'GPRINT:ping_avg:AVERAGE:%4.1lf ms Avg,', 'GPRINT:ping_max:MAX:%4.1lf ms Max,', 'GPRINT:ping_avg:LAST:%4.1lf ms Last'], + pg_blks => ['DEF:pg_blks_avg={file}:value:AVERAGE', + 'DEF:pg_blks_min={file}:value:MIN', + 'DEF:pg_blks_max={file}:value:MAX', + "AREA:pg_blks_max#$HalfBlue", + "AREA:pg_blks_min#$Canvas", + "LINE1:pg_blks_avg#$FullBlue:Blocks", + 'GPRINT:pg_blks_min:MIN:%4.1lf%s Min,', + 'GPRINT:pg_blks_avg:AVERAGE:%4.1lf%s Avg,', + 'GPRINT:pg_blks_max:MAX:%4.1lf%s Max,', + 'GPRINT:pg_blks_avg:LAST:%4.1lf%s Last'], + pg_db_size => ['DEF:pg_db_size_avg={file}:value:AVERAGE', + 'DEF:pg_db_size_min={file}:value:MIN', + 'DEF:pg_db_size_max={file}:value:MAX', + "AREA:pg_db_size_max#$HalfBlue", + "AREA:pg_db_size_min#$Canvas", + "LINE1:pg_db_size_avg#$FullBlue:Bytes", + 'GPRINT:pg_db_size_min:MIN:%4.1lf%s Min,', + 'GPRINT:pg_db_size_avg:AVERAGE:%4.1lf%s Avg,', + 'GPRINT:pg_db_size_max:MAX:%4.1lf%s Max,', + 'GPRINT:pg_db_size_avg:LAST:%4.1lf%s Last'], + pg_n_tup_c => ['DEF:pg_n_tup_avg={file}:value:AVERAGE', + 'DEF:pg_n_tup_min={file}:value:MIN', + 'DEF:pg_n_tup_max={file}:value:MAX', + "AREA:pg_n_tup_max#$HalfBlue", + "AREA:pg_n_tup_min#$Canvas", + "LINE1:pg_n_tup_avg#$FullBlue:Tuples", + 'GPRINT:pg_n_tup_min:MIN:%4.1lf%s Min,', + 'GPRINT:pg_n_tup_avg:AVERAGE:%4.1lf%s Avg,', + 'GPRINT:pg_n_tup_max:MAX:%4.1lf%s Max,', + 'GPRINT:pg_n_tup_avg:LAST:%4.1lf%s Last'], + pg_n_tup_g => ['DEF:pg_n_tup_avg={file}:value:AVERAGE', + 'DEF:pg_n_tup_min={file}:value:MIN', + 'DEF:pg_n_tup_max={file}:value:MAX', + "AREA:pg_n_tup_max#$HalfBlue", + "AREA:pg_n_tup_min#$Canvas", + "LINE1:pg_n_tup_avg#$FullBlue:Tuples", + 'GPRINT:pg_n_tup_min:MIN:%4.1lf%s Min,', + 'GPRINT:pg_n_tup_avg:AVERAGE:%4.1lf%s Avg,', + 'GPRINT:pg_n_tup_max:MAX:%4.1lf%s Max,', + 'GPRINT:pg_n_tup_avg:LAST:%4.1lf%s Last'], + pg_numbackends => ['DEF:pg_numbackends_avg={file}:value:AVERAGE', + 'DEF:pg_numbackends_min={file}:value:MIN', + 'DEF:pg_numbackends_max={file}:value:MAX', + "AREA:pg_numbackends_max#$HalfBlue", + "AREA:pg_numbackends_min#$Canvas", + "LINE1:pg_numbackends_avg#$FullBlue:Backends", + 'GPRINT:pg_numbackends_min:MIN:%4.1lf%s Min,', + 'GPRINT:pg_numbackends_avg:AVERAGE:%4.1lf%s Avg,', + 'GPRINT:pg_numbackends_max:MAX:%4.1lf%s Max,', + 'GPRINT:pg_numbackends_avg:LAST:%4.1lf%s Last'], + pg_scan => ['DEF:pg_scan_avg={file}:value:AVERAGE', + 'DEF:pg_scan_min={file}:value:MIN', + 'DEF:pg_scan_max={file}:value:MAX', + "AREA:pg_scan_max#$HalfBlue", + "AREA:pg_scan_min#$Canvas", + "LINE1:pg_scan_avg#$FullBlue:Scans", + 'GPRINT:pg_scan_min:MIN:%4.1lf%s Min,', + 'GPRINT:pg_scan_avg:AVERAGE:%4.1lf%s Avg,', + 'GPRINT:pg_scan_max:MAX:%4.1lf%s Max,', + 'GPRINT:pg_scan_avg:LAST:%4.1lf%s Last'], + pg_xact => ['DEF:pg_xact_avg={file}:value:AVERAGE', + 'DEF:pg_xact_min={file}:value:MIN', + 'DEF:pg_xact_max={file}:value:MAX', + "AREA:pg_xact_max#$HalfBlue", + "AREA:pg_xact_min#$Canvas", + "LINE1:pg_xact_avg#$FullBlue:Transactions", + 'GPRINT:pg_xact_min:MIN:%4.1lf%s Min,', + 'GPRINT:pg_xact_avg:AVERAGE:%4.1lf%s Avg,', + 'GPRINT:pg_xact_max:MAX:%4.1lf%s Max,', + 'GPRINT:pg_xact_avg:LAST:%4.1lf%s Last'], power => ['-v', 'Watt', 'DEF:avg={file}:value:AVERAGE', 'DEF:min={file}:value:MIN', @@ -2344,90 +2521,131 @@ sub load_graph_definitions 'GPRINT:avg:LAST:%5.1lf%sV Last\l' ], vs_threads => [ - "DEF:total_avg={file}:total:AVERAGE", - "DEF:total_min={file}:total:MIN", - "DEF:total_max={file}:total:MAX", - "DEF:running_avg={file}:running:AVERAGE", - "DEF:running_min={file}:running:MIN", - "DEF:running_max={file}:running:MAX", - "DEF:uninterruptible_avg={file}:uninterruptible:AVERAGE", - "DEF:uninterruptible_min={file}:uninterruptible:MIN", - "DEF:uninterruptible_max={file}:uninterruptible:MAX", - "DEF:onhold_avg={file}:onhold:AVERAGE", - "DEF:onhold_min={file}:onhold:MIN", - "DEF:onhold_max={file}:onhold:MAX", - "LINE1:total_avg#$FullYellow:Total ", - 'GPRINT:total_min:MIN:%5.1lf Min,', - 'GPRINT:total_avg:AVERAGE:%5.1lf Avg.,', - 'GPRINT:total_max:MAX:%5.1lf Max,', - 'GPRINT:total_avg:LAST:%5.1lf Last\l', - "LINE1:running_avg#$FullRed:Running ", - 'GPRINT:running_min:MIN:%5.1lf Min,', - 'GPRINT:running_avg:AVERAGE:%5.1lf Avg.,', - 'GPRINT:running_max:MAX:%5.1lf Max,', - 'GPRINT:running_avg:LAST:%5.1lf Last\l', - "LINE1:uninterruptible_avg#$FullGreen:Unintr ", - 'GPRINT:uninterruptible_min:MIN:%5.1lf Min,', - 'GPRINT:uninterruptible_avg:AVERAGE:%5.1lf Avg.,', - 'GPRINT:uninterruptible_max:MAX:%5.1lf Max,', - 'GPRINT:uninterruptible_avg:LAST:%5.1lf Last\l', - "LINE1:onhold_avg#$FullBlue:Onhold ", - 'GPRINT:onhold_min:MIN:%5.1lf Min,', - 'GPRINT:onhold_avg:AVERAGE:%5.1lf Avg.,', - 'GPRINT:onhold_max:MAX:%5.1lf Max,', - 'GPRINT:onhold_avg:LAST:%5.1lf Last\l' - ], - vs_memory => [ - 'DEF:vm_avg={file}:vm:AVERAGE', - 'DEF:vm_min={file}:vm:MIN', - 'DEF:vm_max={file}:vm:MAX', - 'DEF:vml_avg={file}:vml:AVERAGE', - 'DEF:vml_min={file}:vml:MIN', - 'DEF:vml_max={file}:vml:MAX', - 'DEF:rss_avg={file}:rss:AVERAGE', - 'DEF:rss_min={file}:rss:MIN', - 'DEF:rss_max={file}:rss:MAX', - 'DEF:anon_avg={file}:anon:AVERAGE', - 'DEF:anon_min={file}:anon:MIN', - 'DEF:anon_max={file}:anon:MAX', - "LINE1:vm_avg#$FullYellow:VM ", - 'GPRINT:vm_min:MIN:%5.1lf%s Min,', - 'GPRINT:vm_avg:AVERAGE:%5.1lf%s Avg.,', - 'GPRINT:vm_max:MAX:%5.1lf%s Avg.,', - 'GPRINT:vm_avg:LAST:%5.1lf%s Last\l', - "LINE1:vml_avg#$FullRed:Locked ", - 'GPRINT:vml_min:MIN:%5.1lf%s Min,', - 'GPRINT:vml_avg:AVERAGE:%5.1lf%s Avg.,', - 'GPRINT:vml_max:MAX:%5.1lf%s Avg.,', - 'GPRINT:vml_avg:LAST:%5.1lf%s Last\l', - "LINE1:rss_avg#$FullGreen:RSS ", - 'GPRINT:rss_min:MIN:%5.1lf%s Min,', - 'GPRINT:rss_avg:AVERAGE:%5.1lf%s Avg.,', - 'GPRINT:rss_max:MAX:%5.1lf%s Avg.,', - 'GPRINT:rss_avg:LAST:%5.1lf%s Last\l', - "LINE1:anon_avg#$FullBlue:Anon. ", - 'GPRINT:anon_min:MIN:%5.1lf%s Min,', - 'GPRINT:anon_avg:AVERAGE:%5.1lf%s Avg.,', - 'GPRINT:anon_max:MAX:%5.1lf%s Avg.,', - 'GPRINT:anon_avg:LAST:%5.1lf%s Last\l', + "DEF:avg={file}:value:AVERAGE", + "DEF:min={file}:value:MIN", + "DEF:max={file}:value:MAX", + "AREA:max#$HalfBlue", + "AREA:min#$Canvas", + "LINE1:avg#$FullBlue:Threads", + 'GPRINT:min:MIN:%5.1lf Min,', + 'GPRINT:avg:AVERAGE:%5.1lf Avg.,', + 'GPRINT:max:MAX:%5.1lf Max,', + 'GPRINT:avg:LAST:%5.1lf Last\l', + ], + vs_memory => ['-b', '1024', '-v', 'Bytes', + "DEF:avg={file}:value:AVERAGE", + "DEF:min={file}:value:MIN", + "DEF:max={file}:value:MAX", + "AREA:max#$HalfBlue", + "AREA:min#$Canvas", + "LINE1:avg#$FullBlue:", + 'GPRINT:min:MIN:%5.1lf%sbytes Min,', + 'GPRINT:avg:AVERAGE:%5.1lf%sbytes Avg.,', + 'GPRINT:max:MAX:%5.1lf%sbytes Max,', + 'GPRINT:avg:LAST:%5.1lf%sbytes Last\l', ], vs_processes => [ - 'DEF:proc_avg={file}:total:AVERAGE', - 'DEF:proc_min={file}:total:MIN', - 'DEF:proc_max={file}:total:MAX', - "AREA:proc_max#$HalfBlue", - "AREA:proc_min#$Canvas", - "LINE1:proc_avg#$FullBlue:Processes", - 'GPRINT:proc_min:MIN:%4.1lf Min,', - 'GPRINT:proc_avg:AVERAGE:%4.1lf Avg.,', - 'GPRINT:proc_max:MAX:%4.1lf Max,', - 'GPRINT:proc_avg:LAST:%4.1lf Last\l' + "DEF:avg={file}:value:AVERAGE", + "DEF:min={file}:value:MIN", + "DEF:max={file}:value:MAX", + "AREA:max#$HalfBlue", + "AREA:min#$Canvas", + "LINE1:avg#$FullBlue:Processes", + 'GPRINT:min:MIN:%5.1lf Min,', + 'GPRINT:avg:AVERAGE:%5.1lf Avg.,', + 'GPRINT:max:MAX:%5.1lf Max,', + 'GPRINT:avg:LAST:%5.1lf Last\l', + ], + vmpage_number => ['-v', 'Pages', + 'DEF:avg={file}:value:AVERAGE', + 'DEF:min={file}:value:MIN', + 'DEF:max={file}:value:MAX', + "AREA:max#$HalfBlue", + "AREA:min#$Canvas", + "LINE1:avg#$FullBlue:Number", + 'GPRINT:min:MIN:%4.1lf Min,', + 'GPRINT:avg:AVERAGE:%4.1lf Avg,', + 'GPRINT:max:MAX:%4.1lf Max,', + 'GPRINT:avg:LAST:%4.1lf Last\l' + ], + vmpage_faults => [ + "DEF:minf_avg={file}:minflt:AVERAGE", + "DEF:minf_min={file}:minflt:MIN", + "DEF:minf_max={file}:minflt:MAX", + "DEF:majf_avg={file}:majflt:AVERAGE", + "DEF:majf_min={file}:majflt:MIN", + "DEF:majf_max={file}:majflt:MAX", + 'CDEF:overlap=majf_avg,minf_avg,GT,minf_avg,majf_avg,IF', + "AREA:majf_avg#$HalfGreen", + "AREA:minf_avg#$HalfBlue", + "AREA:overlap#$HalfBlueGreen", + "LINE1:majf_avg#$FullGreen:Major", + 'GPRINT:majf_min:MIN:%5.1lf%s Min,', + 'GPRINT:majf_avg:AVERAGE:%5.1lf%s Avg,', + 'GPRINT:majf_max:MAX:%5.1lf%s Max,', + 'GPRINT:majf_avg:LAST:%5.1lf%s Last\l', + "LINE1:minf_avg#$FullBlue:Minor", + 'GPRINT:minf_min:MIN:%5.1lf%s Min,', + 'GPRINT:minf_avg:AVERAGE:%5.1lf%s Avg,', + 'GPRINT:minf_max:MAX:%5.1lf%s Max,', + 'GPRINT:minf_avg:LAST:%5.1lf%s Last\l' + ], + vmpage_io => [ + "DEF:rpag_avg={file}:in:AVERAGE", + "DEF:rpag_min={file}:in:MIN", + "DEF:rpag_max={file}:in:MAX", + "DEF:wpag_avg={file}:out:AVERAGE", + "DEF:wpag_min={file}:out:MIN", + "DEF:wpag_max={file}:out:MAX", + 'CDEF:overlap=wpag_avg,rpag_avg,GT,rpag_avg,wpag_avg,IF', + "AREA:wpag_avg#$HalfGreen", + "AREA:rpag_avg#$HalfBlue", + "AREA:overlap#$HalfBlueGreen", + "LINE1:wpag_avg#$FullGreen:OUT", + 'GPRINT:wpag_min:MIN:%5.1lf%s Min,', + 'GPRINT:wpag_avg:AVERAGE:%5.1lf%s Avg,', + 'GPRINT:wpag_max:MAX:%5.1lf%s Max,', + 'GPRINT:wpag_avg:LAST:%5.1lf%s Last\l', + "LINE1:rpag_avg#$FullBlue:IN ", + 'GPRINT:rpag_min:MIN:%5.1lf%s Min,', + 'GPRINT:rpag_avg:AVERAGE:%5.1lf%s Avg,', + 'GPRINT:rpag_max:MAX:%5.1lf%s Max,', + 'GPRINT:rpag_avg:LAST:%5.1lf%s Last\l' + ], + vmpage_action => ['-v', 'Pages', + 'DEF:avg={file}:value:AVERAGE', + 'DEF:min={file}:value:MIN', + 'DEF:max={file}:value:MAX', + "AREA:max#$HalfBlue", + "AREA:min#$Canvas", + "LINE1:avg#$FullBlue:Number", + 'GPRINT:min:MIN:%4.1lf Min,', + 'GPRINT:avg:AVERAGE:%4.1lf Avg,', + 'GPRINT:max:MAX:%4.1lf Max,', + 'GPRINT:avg:LAST:%4.1lf Last\l' + ], + virt_cpu_total => ['-v', 'Milliseconds', + 'DEF:avg_raw={file}:ns:AVERAGE', + 'DEF:min_raw={file}:ns:MIN', + 'DEF:max_raw={file}:ns:MAX', + 'CDEF:avg=avg_raw,1000000,/', + 'CDEF:min=min_raw,1000000,/', + 'CDEF:max=max_raw,1000000,/', + "AREA:avg#$HalfBlue", + "LINE1:avg#$FullBlue:CPU time", + 'GPRINT:min:MIN:%4.1lf Min,', + 'GPRINT:avg:AVERAGE:%4.1lf Avg,', + 'GPRINT:max:MAX:%4.1lf Max,', + 'GPRINT:avg:LAST:%4.1lf Last\l' ], }; $GraphDefs->{'if_multicast'} = $GraphDefs->{'ipt_packets'}; $GraphDefs->{'if_tx_errors'} = $GraphDefs->{'if_rx_errors'}; $GraphDefs->{'dns_qtype'} = $GraphDefs->{'dns_opcode'}; $GraphDefs->{'dns_rcode'} = $GraphDefs->{'dns_opcode'}; + $GraphDefs->{'vmpage_io-memory'} = $GraphDefs->{'vmpage_io'}; + $GraphDefs->{'vmpage_io-swap'} = $GraphDefs->{'vmpage_io'}; + $GraphDefs->{'virt_cpu_total'} = $GraphDefs->{'virt_cpu_total'}; $MetaGraphDefs->{'cpu'} = \&meta_graph_cpu; $MetaGraphDefs->{'dns_qtype'} = \&meta_graph_dns; @@ -2441,6 +2659,8 @@ sub load_graph_definitions $MetaGraphDefs->{'mysql_commands'} = \&meta_graph_mysql_commands; $MetaGraphDefs->{'mysql_handler'} = \&meta_graph_mysql_commands; $MetaGraphDefs->{'tcp_connections'} = \&meta_graph_tcp_connections; + $MetaGraphDefs->{'vmpage_number'} = \&meta_graph_vmpage_number; + $MetaGraphDefs->{'vmpage_action'} = \&meta_graph_vmpage_action; } # load_graph_definitions sub meta_graph_generic_stack @@ -2463,12 +2683,21 @@ sub meta_graph_generic_stack @RRDDefaultArgs, @{$opts->{'rrd_opts'}}); my $max_inst_name = 0; + my @vnames = (); + + for ($i = 0; $i < @$sources; $i++) + { + my $tmp = $sources->[$i]->{'name'}; + $tmp =~ tr/A-Za-z0-9\-_/_/c; + $vnames[$i] = $i . $tmp; + } for ($i = 0; $i < @$sources; $i++) { my $inst_data = $sources->[$i]; my $inst_name = $inst_data->{'name'} || confess; my $file = $inst_data->{'file'} || confess; + my $vname = $vnames[$i]; if (length ($inst_name) > $max_inst_name) { @@ -2478,27 +2707,23 @@ sub meta_graph_generic_stack confess ("No such file: $file") if (!-e $file); push (@cmd, - qq#DEF:${inst_name}_min=$file:value:MIN#, - qq#DEF:${inst_name}_avg=$file:value:AVERAGE#, - qq#DEF:${inst_name}_max=$file:value:MAX#, - qq#CDEF:${inst_name}_nnl=${inst_name}_avg,UN,0,${inst_name}_avg,IF#); + qq#DEF:${vname}_min=$file:value:MIN#, + qq#DEF:${vname}_avg=$file:value:AVERAGE#, + qq#DEF:${vname}_max=$file:value:MAX#, + qq#CDEF:${vname}_nnl=${vname}_avg,UN,0,${vname}_avg,IF#); } { - my $inst_data = $sources->[@$sources - 1]; - my $inst_name = $inst_data->{'name'}; + my $vname = $vnames[@vnames - 1]; - push (@cmd, qq#CDEF:${inst_name}_stk=${inst_name}_nnl#); + push (@cmd, qq#CDEF:${vname}_stk=${vname}_nnl#); } for (my $i = 1; $i < @$sources; $i++) { - my $inst_data0 = $sources->[@$sources - ($i + 1)]; - my $inst_data1 = $sources->[@$sources - $i]; - - my $inst_name0 = $inst_data0->{'name'}; - my $inst_name1 = $inst_data1->{'name'}; + my $vname0 = $vnames[@vnames - ($i + 1)]; + my $vname1 = $vnames[@vnames - $i]; - push (@cmd, qq#CDEF:${inst_name0}_stk=${inst_name0}_nnl,${inst_name1}_stk,+#); + push (@cmd, qq#CDEF:${vname0}_stk=${vname0}_nnl,${vname1}_stk,+#); } for (my $i = 0; $i < @$sources; $i++) @@ -2506,6 +2731,8 @@ sub meta_graph_generic_stack my $inst_data = $sources->[$i]; my $inst_name = $inst_data->{'name'}; + my $vname = $vnames[$i]; + my $legend = sprintf ('%-*s', $max_inst_name, $inst_name); my $line_color; @@ -2525,12 +2752,12 @@ sub meta_graph_generic_stack } $area_color = _color_to_string (_get_faded_color ($area_color)); - push (@cmd, qq(AREA:${inst_name}_stk#$area_color), - qq(LINE1:${inst_name}_stk#$line_color:$legend), - qq(GPRINT:${inst_name}_min:MIN:$number_format Min,), - qq(GPRINT:${inst_name}_avg:AVERAGE:$number_format Avg,), - qq(GPRINT:${inst_name}_max:MAX:$number_format Max,), - qq(GPRINT:${inst_name}_avg:LAST:$number_format Last\\l), + push (@cmd, qq(AREA:${vname}_stk#$area_color), + qq(LINE1:${vname}_stk#$line_color:$legend), + qq(GPRINT:${vname}_min:MIN:$number_format Min,), + qq(GPRINT:${vname}_avg:AVERAGE:$number_format Avg,), + qq(GPRINT:${vname}_max:MAX:$number_format Max,), + qq(GPRINT:${vname}_avg:LAST:$number_format Last\\l), ); } @@ -3035,4 +3262,131 @@ sub meta_graph_tcp_connections return (meta_graph_generic_stack ($opts, $sources)); } # meta_graph_tcp_connections + +sub meta_graph_vmpage_number +{ + confess ("Wrong number of arguments") if (@_ != 5); + + my $host = shift; + my $plugin = shift; + my $plugin_instance = shift; + my $type = shift; + my $type_instances = shift; + + my $opts = {}; + my $sources = []; + + $opts->{'title'} = "$host/$plugin" + . (defined ($plugin_instance) ? "-$plugin_instance" : '') . "/$type"; + $opts->{'number_format'} = '%6.2lf'; + + $opts->{'rrd_opts'} = ['-v', 'Pages']; + + my @files = (); + + $opts->{'colors'} = + { + anon_pages => '00e000', + bounce => '00e0ff', + dirty => '00e0a0', + file_pages => 'f000f0', + mapped => 'f000a0', + page_table_pages => 'ffb000', + slab => '0000f0', + unstable => '0000a0', + writeback => 'ff0000', + }; + + _custom_sort_arrayref ($type_instances, + [reverse qw(anon_pages bounce dirty file_pages mapped page_table_pages slab unstable writeback)]); + + for (@$type_instances) + { + my $inst = $_; + my $file = ''; + my $title = $opts->{'title'}; + + for (@DataDirs) + { + if (-e "$_/$title-$inst.rrd") + { + $file = "$_/$title-$inst.rrd"; + last; + } + } + confess ("No file found for $title") if ($file eq ''); + + push (@$sources, + { + name => $inst, + file => $file + } + ); + } # for (@$type_instances) + + return (meta_graph_generic_stack ($opts, $sources)); +} # meta_graph_vmpage_number + +sub meta_graph_vmpage_action +{ + confess ("Wrong number of arguments") if (@_ != 5); + + my $host = shift; + my $plugin = shift; + my $plugin_instance = shift; + my $type = shift; + my $type_instances = shift; + + my $opts = {}; + my $sources = []; + + $opts->{'title'} = "$host/$plugin" + . (defined ($plugin_instance) ? "-$plugin_instance" : '') . "/$type"; + $opts->{'number_format'} = '%6.2lf'; + + $opts->{'rrd_opts'} = ['-v', 'Pages']; + + my @files = (); + + $opts->{'colors'} = + { + activate => '00e000', + deactivate => '00e0ff', + free => '00e0a0', + alloc => 'f000f0', + refill => 'f000a0', + scan_direct => 'ffb000', + scan_kswapd => '0000f0', + steal => '0000a0', + }; + + _custom_sort_arrayref ($type_instances, + [reverse qw(activate deactivate alloc free refill scan_direct scan_kswapd steal)]); + + for (@$type_instances) + { + my $inst = $_; + my $file = ''; + my $title = $opts->{'title'}; + + for (@DataDirs) + { + if (-e "$_/$title-$inst.rrd") + { + $file = "$_/$title-$inst.rrd"; + last; + } + } + confess ("No file found for $title") if ($file eq ''); + + push (@$sources, + { + name => $inst, + file => $file + } + ); + } # for (@$type_instances) + + return (meta_graph_generic_stack ($opts, $sources)); +} # meta_graph_vmpage_action # vim: shiftwidth=2:softtabstop=2:tabstop=8