mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-28 03:33:25 +02:00
QoS graphs: Add color mapping table
Use the traffic class description field to identify similar classes. This ensures that a class used in both the up- and down-link is printed with matching colors in both graphs. Signed-off-by: Leo-Andres Hofmann <hofmann@leo-andres.de> Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
This commit is contained in:
committed by
Michael Tremer
parent
ea6fa0bcef
commit
00db2d8343
@@ -989,7 +989,7 @@ sub updateqosgraph {
|
|||||||
|
|
||||||
my $ERROR="";
|
my $ERROR="";
|
||||||
my $count="1";
|
my $count="1";
|
||||||
my $color="#000000";
|
my %colorMap = (); # maps traffic classes to graph colors
|
||||||
|
|
||||||
my @command = (
|
my @command = (
|
||||||
@GRAPH_ARGS,
|
@GRAPH_ARGS,
|
||||||
@@ -1013,18 +1013,27 @@ sub updateqosgraph {
|
|||||||
@classes = <FILE>;
|
@classes = <FILE>;
|
||||||
close FILE;
|
close FILE;
|
||||||
|
|
||||||
my $colorIndex = 0;
|
|
||||||
foreach $classentry (sort @classes){
|
foreach $classentry (sort @classes){
|
||||||
@classline = split( /\;/, $classentry );
|
@classline = split( /\;/, $classentry );
|
||||||
|
|
||||||
|
# create class <-> color mapping
|
||||||
|
my $colorKey = uc $classline[8]; # upper case class name as key
|
||||||
|
if(! exists $colorMap{$colorKey}) {
|
||||||
|
# add missing color to table, use colors 11-25
|
||||||
|
my $colorIndex = 11 + ((scalar keys %colorMap) % 15);
|
||||||
|
$colorMap{$colorKey} = "$color{\"color$colorIndex\"}";
|
||||||
|
}
|
||||||
|
|
||||||
if ( $classline[0] eq $qossettings{'DEV'} ){
|
if ( $classline[0] eq $qossettings{'DEV'} ){
|
||||||
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");
|
push(@command, "DEF:$classline[1]=$mainsettings{'RRDLOG'}/class_$qossettings{'CLASSPRFX'}-$classline[1]_$qossettings{'DEV'}.rrd:bytes:AVERAGE");
|
||||||
|
|
||||||
|
# get color to be used for this graph
|
||||||
|
my $graphColor = $colorMap{$colorKey};
|
||||||
|
|
||||||
if ($count eq "1") {
|
if ($count eq "1") {
|
||||||
push(@command, "AREA:$classline[1]$color:$Lang::tr{'Class'} $classline[1] -".sprintf("%15s",$classline[8]));
|
push(@command, "AREA:$classline[1]$graphColor:$Lang::tr{'Class'} $classline[1] -".sprintf("%15s",$classline[8]));
|
||||||
} else {
|
} else {
|
||||||
push(@command, "STACK:$classline[1]$color:$Lang::tr{'Class'} $classline[1] -".sprintf("%15s",$classline[8]));
|
push(@command, "STACK:$classline[1]$graphColor:$Lang::tr{'Class'} $classline[1] -".sprintf("%15s",$classline[8]));
|
||||||
}
|
}
|
||||||
|
|
||||||
push(@command, "GPRINT:$classline[1]:MAX:%8.1lf %sBps"
|
push(@command, "GPRINT:$classline[1]:MAX:%8.1lf %sBps"
|
||||||
|
|||||||
Reference in New Issue
Block a user