X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=config%2Fcfgroot%2Fgraphs.pl;h=1bed49fa376a595b8c5e8ce114f77f2c1dd4817b;hb=203601bf686a3248f4a807d728ed53bc7c499e0d;hp=19c0546da2d3d16bcffdd17f4da7ccefece452b6;hpb=d0d3fe9d266c265697250dabba0bfdac316314ff;p=people%2Fpmueller%2Fipfire-2.x.git diff --git a/config/cfgroot/graphs.pl b/config/cfgroot/graphs.pl index 19c0546da2..1bed49fa37 100644 --- a/config/cfgroot/graphs.pl +++ b/config/cfgroot/graphs.pl @@ -31,6 +31,30 @@ require "${General::swroot}/header.pl"; my $ERROR; +my @GRAPH_ARGS = ( + # Output format + "--imgformat", "PNG", + + # No border + "--border", "0", + + # For a more 'organic' look + "--slope-mode", + + # HxW define the size of the output image + "--full-size-mode", + + # Watermark + "-W www.ipfire.org", + + # Default size + "-w 910", + "-h 300", + + # Use alternative grid + "--alt-y-grid", +); + # Read the global settings files to get the current theme and after this load # colors for this theme @@ -77,11 +101,6 @@ foreach (@sensorsdir){ # 3 if given is the height of the iframe default if nothing is given sub makegraphbox { - my $height = 285; - my $width = 700; - - if ( $_[3] ne "" ){ $height = $_[3]; } - print "
"; print "".$Lang::tr{'hour'}.""; print " - "; @@ -92,8 +111,8 @@ sub makegraphbox { print "".$Lang::tr{'month'}.""; print " - "; print "".$Lang::tr{'year'}.""; - print ""; - print "
"; + print "
"; + print ""; } # Generate the CPU Graph for the current period of time for values given by @@ -103,16 +122,10 @@ sub updatecpugraph { my $cpucount = `ls -dA $mainsettings{'RRDLOG'}/collectd/localhost/cpu-*/ 2>/dev/null | wc -l`; my $period = $_[0]; my @command = ( + @GRAPH_ARGS, "-", "--start", "-1".$period, - "-aPNG", - "-i", - "-z", - "-W www.ipfire.org", - "--alt-y-grid", - "-w 600", - "-h 125", "-l 0", "-u 100", "-r", @@ -237,16 +250,10 @@ sub updatecpugraph { sub updateloadgraph { my $period = $_[0]; RRDs::graph( + @GRAPH_ARGS, "-", "--start", "-1".$period, - "-aPNG", - "-i", - "-z", - "-W www.ipfire.org", - "--alt-y-grid", - "-w 600", - "-h 125", "-l 0", "-r", "-t Load Average ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"}, @@ -257,11 +264,11 @@ sub updateloadgraph { "DEF:load1=".$mainsettings{'RRDLOG'}."/collectd/localhost/load/load.rrd:shortterm:AVERAGE", "DEF:load5=".$mainsettings{'RRDLOG'}."/collectd/localhost/load/load.rrd:midterm:AVERAGE", "DEF:load15=".$mainsettings{'RRDLOG'}."/collectd/localhost/load/load.rrd:longterm:AVERAGE", - "AREA:load1".$color{"color13"}."A0:1 ".$Lang::tr{'minute'}.":", + "AREA:load1".$color{"color13"}."A0:1 ".$Lang::tr{'minute'}, "GPRINT:load1:LAST:%5.2lf", - "AREA:load5".$color{"color18"}."A0:5 ".$Lang::tr{'minutes'}.":", + "AREA:load5".$color{"color18"}."A0:5 ".$Lang::tr{'minutes'}, "GPRINT:load5:LAST:%5.2lf", - "AREA:load15".$color{"color14"}."A0:15 ".$Lang::tr{'minutes'}.":", + "AREA:load15".$color{"color14"}."A0:15 ".$Lang::tr{'minutes'}, "GPRINT:load15:LAST:%5.2lf\\j", "LINE1:load5".$color{"color13"}, "LINE1:load1".$color{"color18"}, @@ -275,16 +282,10 @@ sub updateloadgraph { sub updatememorygraph { my $period = $_[0]; RRDs::graph( + @GRAPH_ARGS, "-", "--start", "-1".$period, - "-aPNG", - "-i", - "-z", - "-W www.ipfire.org", - "--alt-y-grid", - "-w 600", - "-h 125", "-l 0", "-u 100", "-r", @@ -337,16 +338,10 @@ sub updatememorygraph { sub updateswapgraph { my $period = $_[0]; RRDs::graph( + @GRAPH_ARGS, "-", "--start", "-1".$period, - "-aPNG", - "-i", - "-z", - "-W www.ipfire.org", - "--alt-y-grid", - "-w 600", - "-h 125", "-l 0", "-u 100", "-r", @@ -395,16 +390,10 @@ sub updateprocessescpugraph { my $count="0"; my @command = ( + @GRAPH_ARGS, "-", "--start", "-1".$period, - "-aPNG", - "-i", - "-z", - "-W www.ipfire.org", - "--alt-y-grid", - "-w 600", - "-h 125", "-l 0", "-r", "-t ".$Lang::tr{'processes'}." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"}, @@ -422,12 +411,15 @@ sub updateprocessescpugraph { push(@command,"COMMENT:".$Lang::tr{'caption'}."\\j"); + my $colorIndex = 0; foreach(@processesgraph){ + my $colorIndex = 10 + $count % 15; + my $color="$color{\"color$colorIndex\"}"; chomp($_);my @name=split(/\-/,$_);chop($name[1]); if ($count eq "0"){ - push(@command,"AREA:".$name[1].random_hex_color(6)."A0:".$name[1]); + push(@command,"AREA:".$name[1].$color."A0:".$name[1]); }else{ - push(@command,"STACK:".$name[1].random_hex_color(6)."A0:".$name[1]); + push(@command,"STACK:".$name[1].$color."A0:".$name[1]); } $count++; } @@ -445,16 +437,10 @@ sub updateprocessesmemorygraph { my $count="0"; my @command = ( + @GRAPH_ARGS, "-", "--start", "-1".$period, - "-aPNG", - "-i", - "-z", - "-W www.ipfire.org", - "--alt-y-grid", - "-w 600", - "-h 125", "-l 0", "-r", "-t ".$Lang::tr{'processes'}." ".$Lang::tr{'memory'}." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"}, @@ -471,12 +457,15 @@ sub updateprocessesmemorygraph { push(@command,"COMMENT:".$Lang::tr{'caption'}."\\j"); + my $colorIndex = 0; foreach(@processesgraph){ chomp($_);my @name=split(/\-/,$_);chop($name[1]); + my $colorIndex = 10 + $count % 15; + my $color="$color{\"color$colorIndex\"}"; if ($count eq "0"){ - push(@command,"AREA:".$name[1].random_hex_color(6)."A0:".$name[1]); + push(@command,"AREA:".$name[1].$color."A0:".$name[1]); }else{ - push(@command,"STACK:".$name[1].random_hex_color(6)."A0:".$name[1]); + push(@command,"STACK:".$name[1].$color."A0:".$name[1]); } $count++; } @@ -492,16 +481,10 @@ sub updatediskgraph { my $disk = $_[0]; my $period = $_[1]; RRDs::graph( + @GRAPH_ARGS, "-", "--start", "-1".$period, - "-aPNG", - "-i", - "-z", - "-W www.ipfire.org", - "--alt-y-grid", - "-w 600", - "-h 125", "-r", "-t ".$disk." ".$Lang::tr{'disk access per'}." ".$Lang::tr{$period."-graph"}, "-v ".$Lang::tr{'bytes per second'}, @@ -513,7 +496,7 @@ sub updatediskgraph { "CDEF:writen=write,-1,*", "DEF:standby=".$mainsettings{'RRDLOG'}."/hddshutdown-".$disk.".rrd:standby:AVERAGE", "CDEF:st=standby,INF,*", - "CDEF:st1=standby,-INF,*", + "CDEF:st1=standby,NEGINF,*", "COMMENT:".sprintf("%-25s",$Lang::tr{'caption'}), "COMMENT:".sprintf("%15s",$Lang::tr{'maximal'}), "COMMENT:".sprintf("%15s",$Lang::tr{'average'}), @@ -542,16 +525,10 @@ sub updateifgraph { my $interface = $_[0]; my $period = $_[1]; RRDs::graph( + @GRAPH_ARGS, "-", "--start", "-1".$period, - "-aPNG", - "-i", - "-z", - "-W www.ipfire.org", - "--alt-y-grid", - "-w 600", - "-h 125", "-r", "-t ".$Lang::tr{'traffic on'}." ".$interface." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"}, "-v ".$Lang::tr{'bytes per second'}, @@ -581,21 +558,115 @@ sub updateifgraph { print "Error in RRD::graph for ".$interface.": ".$ERROR."\n" if $ERROR; } +sub updatevpngraph { + my $interface = $_[0]; + my $period = $_[1]; + RRDs::graph( + @GRAPH_ARGS, + "-", + "--start", + "-1".$period, + "-r", + "-t ".$Lang::tr{'traffic on'}." ".$interface." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"}, + "-v ".$Lang::tr{'bytes per second'}, + "--color=SHADEA".$color{"color19"}, + "--color=SHADEB".$color{"color19"}, + "--color=BACK".$color{"color21"}, + "DEF:incoming=".$mainsettings{'RRDLOG'}."/collectd/localhost/openvpn-$interface/if_octets_derive.rrd:rx:AVERAGE", + "DEF:outgoing=".$mainsettings{'RRDLOG'}."/collectd/localhost/openvpn-$interface/if_octets_derive.rrd:tx:AVERAGE", + "CDEF:outgoingn=outgoing,-1,*", + "COMMENT:".sprintf("%-20s",$Lang::tr{'caption'}), + "COMMENT:".sprintf("%15s",$Lang::tr{'maximal'}), + "COMMENT:".sprintf("%15s",$Lang::tr{'average'}), + "COMMENT:".sprintf("%15s",$Lang::tr{'minimal'}), + "COMMENT:".sprintf("%15s",$Lang::tr{'current'})."\\j", + "AREA:incoming#00dd00:".sprintf("%-20s",$Lang::tr{'incoming traffic in bytes per second'}), + "GPRINT:incoming:MAX:%8.1lf %sBps", + "GPRINT:incoming:AVERAGE:%8.1lf %sBps", + "GPRINT:incoming:MIN:%8.1lf %sBps", + "GPRINT:incoming:LAST:%8.1lf %sBps\\j", + "AREA:outgoingn#dd0000:".sprintf("%-20s",$Lang::tr{'outgoing traffic in bytes per second'}), + "GPRINT:outgoing:MAX:%8.1lf %sBps", + "GPRINT:outgoing:AVERAGE:%8.1lf %sBps", + "GPRINT:outgoing:MIN:%8.1lf %sBps", + "GPRINT:outgoing:LAST:%8.1lf %sBps\\j", + ); + $ERROR = RRDs::error; + print "Error in RRD::graph for ".$interface.": ".$ERROR."\n" if $ERROR; +} + +sub updatevpnn2ngraph { + my $interface = $_[0]; + my $period = $_[1]; + RRDs::graph( + @GRAPH_ARGS, + "-", + "--start", + "-1".$period, + "-r", + "-t ".$Lang::tr{'traffic on'}." ".$interface." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"}, + "-v ".$Lang::tr{'bytes per second'}, + "--color=SHADEA".$color{"color19"}, + "--color=SHADEB".$color{"color19"}, + "--color=BACK".$color{"color21"}, + "DEF:incoming=".$mainsettings{'RRDLOG'}."/collectd/localhost/openvpn-$interface/if_octets_derive-traffic.rrd:rx:AVERAGE", + "DEF:outgoing=".$mainsettings{'RRDLOG'}."/collectd/localhost/openvpn-$interface/if_octets_derive-traffic.rrd:tx:AVERAGE", + "DEF:overhead_in=".$mainsettings{'RRDLOG'}."/collectd/localhost/openvpn-$interface/if_octets_derive-overhead.rrd:rx:AVERAGE", + "DEF:overhead_out=".$mainsettings{'RRDLOG'}."/collectd/localhost/openvpn-$interface/if_octets_derive-overhead.rrd:tx:AVERAGE", + "DEF:compression_in=".$mainsettings{'RRDLOG'}."/collectd/localhost/openvpn-$interface/compression_derive-data_in.rrd:uncompressed:AVERAGE", + "DEF:compression_out=".$mainsettings{'RRDLOG'}."/collectd/localhost/openvpn-$interface/compression_derive-data_out.rrd:uncompressed:AVERAGE", + "CDEF:outgoingn=outgoing,-1,*", + "CDEF:overhead_outn=overhead_out,-1,*", + "CDEF:compression_outn=compression_out,-1,*", + "COMMENT:".sprintf("%-20s",$Lang::tr{'caption'}), + "COMMENT:".sprintf("%15s",$Lang::tr{'maximal'}), + "COMMENT:".sprintf("%15s",$Lang::tr{'average'}), + "COMMENT:".sprintf("%15s",$Lang::tr{'minimal'}), + "COMMENT:".sprintf("%15s",$Lang::tr{'current'})."\\j", + "AREA:incoming#00dd00:".sprintf("%-23s",$Lang::tr{'incoming traffic in bytes per second'}), + "GPRINT:incoming:MAX:%8.1lf %sBps", + "GPRINT:incoming:AVERAGE:%8.1lf %sBps", + "GPRINT:incoming:MIN:%8.1lf %sBps", + "GPRINT:incoming:LAST:%8.1lf %sBps\\j", + "STACK:overhead_in#116B11:".sprintf("%-23s",$Lang::tr{'incoming overhead in bytes per second'}), + "GPRINT:overhead_in:MAX:%8.1lf %sBps", + "GPRINT:overhead_in:AVERAGE:%8.1lf %sBps", + "GPRINT:overhead_in:MIN:%8.1lf %sBps", + "GPRINT:overhead_in:LAST:%8.1lf %sBps\\j", + "LINE1:compression_in#ff00ff:".sprintf("%-23s",$Lang::tr{'incoming compression in bytes per second'}), + "GPRINT:compression_in:MAX:%8.1lf %sBps", + "GPRINT:compression_in:AVERAGE:%8.1lf %sBps", + "GPRINT:compression_in:MIN:%8.1lf %sBps", + "GPRINT:compression_in:LAST:%8.1lf %sBps\\j", + "AREA:outgoingn#dd0000:".sprintf("%-23s",$Lang::tr{'outgoing traffic in bytes per second'}), + "GPRINT:outgoing:MAX:%8.1lf %sBps", + "GPRINT:outgoing:AVERAGE:%8.1lf %sBps", + "GPRINT:outgoing:MIN:%8.1lf %sBps", + "GPRINT:outgoing:LAST:%8.1lf %sBps\\j", + "STACK:overhead_outn#870C0C:".sprintf("%-23s",$Lang::tr{'outgoing overhead in bytes per second'}), + "GPRINT:overhead_out:MAX:%8.1lf %sBps", + "GPRINT:overhead_out:AVERAGE:%8.1lf %sBps", + "GPRINT:overhead_out:MIN:%8.1lf %sBps", + "GPRINT:overhead_out:LAST:%8.1lf %sBps\\j", + "LINE1:compression_outn#000000:".sprintf("%-23s",$Lang::tr{'outgoing compression in bytes per second'}), + "GPRINT:compression_out:MAX:%8.1lf %sBps", + "GPRINT:compression_out:AVERAGE:%8.1lf %sBps", + "GPRINT:compression_out:MIN:%8.1lf %sBps", + "GPRINT:compression_out:LAST:%8.1lf %sBps\\j", + ); + $ERROR = RRDs::error; + print "Error in RRD::graph for ".$interface.": ".$ERROR."\n" if $ERROR; +} + # Generate the Firewall Graph for the current period of time for values given by collecd sub updatefwhitsgraph { my $period = $_[0]; RRDs::graph( + @GRAPH_ARGS, "-", "--start", "-1".$period, - "-aPNG", - "-i", - "-z", - "-W www.ipfire.org", - "--alt-y-grid", - "-w 600", - "-h 125", "-r", "-t ".$Lang::tr{'firewall hits per'}." ".$Lang::tr{$period."-graph"}, "-v ".$Lang::tr{'bytes per second'}, @@ -648,16 +719,10 @@ sub updatepinggraph { my $period = $_[1]; my $host = $_[0]; RRDs::graph( + @GRAPH_ARGS, "-", "--start", "-1".$period, - "-aPNG", - "-i", - "-z", - "-W www.ipfire.org", - "--alt-y-grid", - "-w 600", - "-h 125", "-l 0", "-r", "-t ".$Lang::tr{'linkq'}." ".$host." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"}, @@ -694,16 +759,10 @@ sub updatewirelessgraph { my $period = $_[1]; my $interface = $_[0]; RRDs::graph( + @GRAPH_ARGS, "-", "--start", "-1".$period, - "-aPNG", - "-i", - "-z", - "-W www.ipfire.org", - "--alt-y-grid", - "-w 600", - "-h 125", "-t Wireless ".$interface." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"}, "-v dBm", "--color=SHADEA".$color{"color19"}, @@ -737,16 +796,10 @@ sub updatehddgraph { my $disk = $_[0]; my $period = $_[1]; RRDs::graph( + @GRAPH_ARGS, "-", "--start", "-1".$period, - "-aPNG", - "-i", - "-z", - "-W www.ipfire.org", - "--alt-y-grid", - "-w 600", - "-h 125", "-r", "-t ".$disk." ".$Lang::tr{'harddisk temperature'}." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"}, "-v Celsius", @@ -777,16 +830,10 @@ sub updatehwtempgraph { my $period = $_[0]; my @command = ( + @GRAPH_ARGS, "-", "--start", "-1".$period, - "-aPNG", - "-i", - "-z", - "-W www.ipfire.org", - "--alt-y-grid", - "-w 600", - "-h 125", "-r", "-t ".$Lang::tr{'mbmon temp'}." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"}, "--color=SHADEA".$color{"color19"}, @@ -830,16 +877,10 @@ sub updatehwfangraph { my $period = $_[0]; my @command = ( + @GRAPH_ARGS, "-", "--start", "-1".$period, - "-aPNG", - "-i", - "-z", - "-W www.ipfire.org", - "--alt-y-grid", - "-w 600", - "-h 125", "-r", "-t ".$Lang::tr{'mbmon fan'}." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"}, "--color=SHADEA".$color{"color19"}, @@ -883,16 +924,10 @@ sub updatehwvoltgraph { my $period = $_[0]; my @command = ( + @GRAPH_ARGS, "-", "--start", "-1".$period, - "-aPNG", - "-i", - "-z", - "-W www.ipfire.org", - "--alt-y-grid", - "-w 600", - "-h 125", "-r", "-t ".$Lang::tr{'mbmon volt'}." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"}, "--color=SHADEA".$color{"color19"}, @@ -956,16 +991,10 @@ sub updateqosgraph { my $color="#000000"; my @command = ( + @GRAPH_ARGS, "-", "--start", "-1".$period, - "-aPNG", - "-i", - "-z", - "-W www.ipfire.org", - "--alt-y-grid", - "-w 600", - "-h 125", "-r", "-t ".$Lang::tr{'Utilization on'}." (".$qossettings{'DEV'}.") ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"}, "-v ".$Lang::tr{'bytes per second'}, @@ -983,17 +1012,18 @@ sub updateqosgraph { @classes = ; close FILE; + my $colorIndex = 0; foreach $classentry (sort @classes){ @classline = split( /\;/, $classentry ); if ( $classline[0] eq $qossettings{'DEV'} ){ - $color=random_hex_color(6); + my $colorIndex = 10 + $count % 15; + $color="$color{\"color$colorIndex\"}"; push(@command, "DEF:$classline[1]=$mainsettings{'RRDLOG'}/class_$qossettings{'CLASSPRFX'}-$classline[1]_$qossettings{'DEV'}.rrd:bytes:AVERAGE"); if ($count eq "1") { - push(@command, "AREA:$classline[1]$color:Klasse $classline[1] -".sprintf("%15s",$classline[8])); + push(@command, "AREA:$classline[1]$color:$Lang::tr{'Class'} $classline[1] -".sprintf("%15s",$classline[8])); } else { - push(@command, "STACK:$classline[1]$color:Klasse $classline[1] -".sprintf("%15s",$classline[8])); - + push(@command, "STACK:$classline[1]$color:$Lang::tr{'Class'} $classline[1] -".sprintf("%15s",$classline[8])); } push(@command, "GPRINT:$classline[1]:MAX:%8.1lf %sBps" @@ -1014,16 +1044,10 @@ sub updatecpufreqgraph { my $cpucount = `ls -dA $mainsettings{'RRDLOG'}/collectd/localhost/cpu-*/ 2>/dev/null | wc -l`; my $period = $_[0]; my @command = ( + @GRAPH_ARGS, "-", "--start", "-1".$period, - "-aPNG", - "-i", - "-z", - "-W www.ipfire.org", - "--alt-y-grid", - "-w 600", - "-h 125", "-r", "-t ".$Lang::tr{'cpu frequency per'}." ".$Lang::tr{$period."-graph"}, "-v MHz", @@ -1059,16 +1083,10 @@ sub updatethermaltempgraph { my $thermalcount = `ls -dA $mainsettings{'RRDLOG'}/collectd/localhost/thermal-thermal_zone* 2>/dev/null | wc -l`; my $period = $_[0]; my @command = ( + @GRAPH_ARGS, "-", "--start", "-1".$period, - "-aPNG", - "-i", - "-z", - "-W www.ipfire.org", - "--alt-y-grid", - "-w 600", - "-h 125", "-r", "-t "."ACPI Thermal-Zone Temperature"." - ".$Lang::tr{$period."-graph"}, "-v Grad Celsius", @@ -1114,3 +1132,31 @@ sub getprocesses { my @processesgraph = `ls -dA $mainsettings{'RRDLOG'}/collectd/localhost/processes-*/ 2>/dev/null`; return @processesgraph; } + +sub updateentropygraph { + my $period = $_[0]; + my @command = ( + @GRAPH_ARGS, + "-", + "--start", + "-1".$period, + "-r", + "--lower-limit","0", + "-t $Lang::tr{'entropy'}", + "-v $Lang::tr{'bit'}", + "DEF:entropy=$mainsettings{'RRDLOG'}/collectd/localhost/entropy/entropy.rrd:entropy:AVERAGE", + "LINE3:entropy#ff0000:" . sprintf("%-15s", $Lang::tr{'entropy'}), + "VDEF:entrmin=entropy,MINIMUM", + "VDEF:entrmax=entropy,MAXIMUM", + "VDEF:entravg=entropy,AVERAGE", + "GPRINT:entrmax:" . sprintf("%12s\\: %%5.0lf", $Lang::tr{'maximum'}), + "GPRINT:entrmin:" . sprintf("%12s\\: %%5.0lf", $Lang::tr{'minimum'}), + "GPRINT:entravg:" . sprintf("%12s\\: %%5.0lf", $Lang::tr{'average'}) . "\\n", + "--color=BACK".$color{"color21"}, + ); + + RRDs::graph (@command); + $ERROR = RRDs::error; + + print "Error in RRD::graph for entropy: ".$ERROR."\n" if $ERROR; +}