public inbox for development@lists.ipfire.org
 help / color / mirror / Atom feed
From: Bernhard Bitsch <bbitsch@ipfire.org>
To: development@lists.ipfire.org
Subject: Re: [PATCH] Network based RRD graphs Bytes to Bits
Date: Mon, 24 May 2021 21:43:51 +0200	[thread overview]
Message-ID: <8aebf43d-571a-bdbc-3d2d-131f5b81e4b0@ipfire.org> (raw)
In-Reply-To: <be613c0f-b6d8-8c71-3b36-86f0247d81ba@ipfire.org>

[-- Attachment #1: Type: text/plain, Size: 21353 bytes --]

Hi,

I've tested also, for the qos and network graphs.
No problem.

One annotation: why are the legends 'incoming traffic in bytes per 
second' ( new '... bits per second' )? The associated text is 'incoming 
traffic' ( obviously in both versions ).
Can't we change this key just to 'incoming traffic'?
This is true for 'outgoing traffic...', 'incoming overhead...', ...
I didn't search where this texts are used  in the project.

Regards,
Bernhard

Am 24.05.2021 um 18:18 schrieb Matthias Fischer:
> Hi,
> 
> thanks for the corrected patch - now I could apply it.
> 
> I made a quick test => please see attachments.
> 
> Seems to work as expected.
> 
> However I cannot test VPN connections, sorry.
> 
> Best,
> Matthias
> 
> On 24.05.2021 16:04, nateos2g(a)fastmail.com wrote:
>> From: Nate Oaks <nateos2g(a)fastmail.com>
>>
>> For proper display of network measurements, Bps (bytes) should be
>> converted to bps (bits). Bytes are for data/storage (RAM, HDD, SSD,
>> etc.), bits are for network bandwidth or throughput (NICs, switches,
>> routers, WiFi adapters, etc.).
>>
>> Networks transfer data as single bits at a time. It’s both more accurate
>> and more intuitive to measure network speed in bits per second that a
>> network connection is transmitting, not the amount of data units, or
>> bytes, it transmits. Notice all network devices are marketed, measure
>> and diplay in bits per second.
>>
>> I simply used RRD CDEF to multiply by 8.
>>
>> NOTE: Found: "ERROR: rpn expressions without DEF or CDEF variables are
>> not supported".
>> Specifically in updateqosgraph, CDEF does not like a number as a
>> variable name. ie. "204" from $classline[1].
>>
>> Requires update of the language cache files:
>> perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang"
>> or: update-lang-cache
>>
>> Found one other asking for this:
>> https://community.ipfire.org/t/ipfire-bandwidth-usage/1203
>>
>> Signed-off-by: Nate Oaks <nateos2g(a)fastmail.com>
>> ---
>>   config/cfgroot/graphs.pl | 202 +++++++++++++++++++++------------------
>>   langs/en/cgi-bin/en.pl   |  13 +--
>>   2 files changed, 117 insertions(+), 98 deletions(-)
>>
>> diff --git a/config/cfgroot/graphs.pl b/config/cfgroot/graphs.pl
>> index 441d4c483a46..c83ae67bbfc1 100644
>> --- a/config/cfgroot/graphs.pl
>> +++ b/config/cfgroot/graphs.pl
>> @@ -545,28 +545,30 @@ sub updateifgraph {
>>   		"-1".$period,
>>   		"-r",
>>   		"-t ".$Lang::tr{'traffic on'}." ".$interface." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"},
>> -		"-v ".$Lang::tr{'bytes per second'},
>> +		"-v ".$Lang::tr{'bits per second'},
>>   		"--color=SHADEA".$color{"color19"},
>>   		"--color=SHADEB".$color{"color19"},
>>   		"--color=BACK".$color{"color21"},
>>   		"DEF:incoming=".$mainsettings{'RRDLOG'}."/collectd/localhost/interface/if_octets-".$interface.".rrd:rx:AVERAGE",
>>   		"DEF:outgoing=".$mainsettings{'RRDLOG'}."/collectd/localhost/interface/if_octets-".$interface.".rrd:tx:AVERAGE",
>> -		"CDEF:outgoingn=outgoing,-1,*",
>> +		"CDEF:outgoingb=outgoing,8,*",
>> +		"CDEF:outgoingn=outgoingb,-1,*",
>> +		"CDEF:incomingb=incoming,8,*",
>>   		"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".$color{"color12"}."A0:".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".$color{"color13"}."A0:".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",
>> +		"AREA:incomingb".$color{"color12"}."A0:".sprintf("%-20s",$Lang::tr{'incoming traffic in bits per second'}),
>> +		"GPRINT:incomingb:MAX:%8.1lf %sbps",
>> +		"GPRINT:incomingb:AVERAGE:%8.1lf %sbps",
>> +		"GPRINT:incomingb:MIN:%8.1lf %sbps",
>> +		"GPRINT:incomingb:LAST:%8.1lf %sbps\\j",
>> +		"AREA:outgoingn".$color{"color13"}."A0:".sprintf("%-20s",$Lang::tr{'outgoing traffic in bits per second'}),
>> +		"GPRINT:outgoingb:MAX:%8.1lf %sbps",
>> +		"GPRINT:outgoingb:AVERAGE:%8.1lf %sbps",
>> +		"GPRINT:outgoingb:MIN:%8.1lf %sbps",
>> +		"GPRINT:outgoingb:LAST:%8.1lf %sbps\\j",
>>   		);
>>   		$ERROR = RRDs::error;
>>   		return "Error in RRD::graph for ".$interface.": ".$ERROR."\n" if $ERROR;
>> @@ -582,28 +584,30 @@ sub updatevpngraph {
>>   		"-1".$period,
>>   		"-r",
>>   		"-t ".$Lang::tr{'traffic on'}." ".$interface." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"},
>> -		"-v ".$Lang::tr{'bytes per second'},
>> +		"-v ".$Lang::tr{'bits 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,*",
>> +		"CDEF:outgoingb=outgoing,8,*",
>> +		"CDEF:outgoingn=outgoingb,-1,*",
>> +		"CDEF:incomingb=incoming,8,*",
>>   		"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",
>> +		"AREA:incomingb#00dd00:".sprintf("%-20s",$Lang::tr{'incoming traffic in bits per second'}),
>> +		"GPRINT:incomingb:MAX:%8.1lf %sbps",
>> +		"GPRINT:incomingb:AVERAGE:%8.1lf %sbps",
>> +		"GPRINT:incomingb:MIN:%8.1lf %sbps",
>> +		"GPRINT:incomingb:LAST:%8.1lf %sbps\\j",
>> +		"AREA:outgoingn#dd0000:".sprintf("%-20s",$Lang::tr{'outgoing traffic in bits per second'}),
>> +		"GPRINT:outgoingb:MAX:%8.1lf %sbps",
>> +		"GPRINT:outgoingb:AVERAGE:%8.1lf %sbps",
>> +		"GPRINT:outgoingb:MIN:%8.1lf %sbps",
>> +		"GPRINT:outgoingb:LAST:%8.1lf %sbps\\j",
>>   		);
>>   		$ERROR = RRDs::error;
>>   		return "Error in RRD::graph for ".$interface.": ".$ERROR."\n" if $ERROR;
>> @@ -619,7 +623,7 @@ sub updatevpnn2ngraph {
>>   		"-1".$period,
>>   		"-r",
>>   		"-t ".$Lang::tr{'traffic on'}." ".$interface." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"},
>> -		"-v ".$Lang::tr{'bytes per second'},
>> +		"-v ".$Lang::tr{'bits per second'},
>>   		"--color=SHADEA".$color{"color19"},
>>   		"--color=SHADEB".$color{"color19"},
>>   		"--color=BACK".$color{"color21"},
>> @@ -629,44 +633,50 @@ sub updatevpnn2ngraph {
>>   		"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,*",
>> +		"CDEF:outgoingb=outgoing,8,*",
>> +		"CDEF:outgoingn=outgoingb,-1,*",
>> +		"CDEF:incomingb=incoming,8,*",
>> +		"CDEF:overhead_outb=overhead_out,8,*",
>> +		"CDEF:overhead_outn=overhead_outb,-1,*",
>> +		"CDEF:overhead_inb=overhead_in,8,*",
>> +		"CDEF:compression_outb=compression_out,8,*",
>> +		"CDEF:compression_outn=compression_outb,-1,*",
>> +		"CDEF:compression_inb=compression_in,8,*",
>>   		"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",
>> +		"AREA:incomingb#00dd00:".sprintf("%-23s",$Lang::tr{'incoming traffic in bits per second'}),
>> +		"GPRINT:incomingb:MAX:%8.1lf %sbps",
>> +		"GPRINT:incomingb:AVERAGE:%8.1lf %sbps",
>> +		"GPRINT:incomingb:MIN:%8.1lf %sbps",
>> +		"GPRINT:incomingb:LAST:%8.1lf %sbps\\j",
>> +		"STACK:overhead_inb#116B11:".sprintf("%-23s",$Lang::tr{'incoming overhead in bits per second'}),
>> +		"GPRINT:overhead_inb:MAX:%8.1lf %sbps",
>> +		"GPRINT:overhead_inb:AVERAGE:%8.1lf %sbps",
>> +		"GPRINT:overhead_inb:MIN:%8.1lf %sbps",
>> +		"GPRINT:overhead_inb:bLAST:%8.1lf %sbps\\j",
>> +		"LINE1:compression_inb#ff00ff:".sprintf("%-23s",$Lang::tr{'incoming compression in bits per second'}),
>> +		"GPRINT:compression_inb:MAX:%8.1lf %sbps",
>> +		"GPRINT:compression_inb:AVERAGE:%8.1lf %sbps",
>> +		"GPRINT:compression_inb:MIN:%8.1lf %sbps",
>> +		"GPRINT:compression_inb:LAST:%8.1lf %sbps\\j",
>> +		"AREA:outgoingn#dd0000:".sprintf("%-23s",$Lang::tr{'outgoing traffic in bits per second'}),
>> +		"GPRINT:outgoingb:MAX:%8.1lf %sbps",
>> +		"GPRINT:outgoingb:AVERAGE:%8.1lf %sbps",
>> +		"GPRINT:outgoingb:MIN:%8.1lf %sbps",
>> +		"GPRINT:outgoingb:LAST:%8.1lf %sbps\\j",
>> +		"STACK:overhead_outn#870C0C:".sprintf("%-23s",$Lang::tr{'outgoing overhead in bits per second'}),
>> +		"GPRINT:overhead_outb:MAX:%8.1lf %sbps",
>> +		"GPRINT:overhead_outb:AVERAGE:%8.1lf %sbps",
>> +		"GPRINT:overhead_outb:MIN:%8.1lf %sbps",
>> +		"GPRINT:overhead_outb:LAST:%8.1lf %sbps\\j",
>> +		"LINE1:compression_outn#000000:".sprintf("%-23s",$Lang::tr{'outgoing compression in bits per second'}),
>> +		"GPRINT:compression_outb:MAX:%8.1lf %sbps",
>> +		"GPRINT:compression_outb:AVERAGE:%8.1lf %sbps",
>> +		"GPRINT:compression_outb:MIN:%8.1lf %sbps",
>> +		"GPRINT:compression_outb:LAST:%8.1lf %sbps\\j",
>>   		);
>>   		$ERROR = RRDs::error;
>>   		return "Error in RRD::graph for ".$interface.": ".$ERROR."\n" if $ERROR;
>> @@ -683,7 +693,7 @@ sub updatefwhitsgraph {
>>   		"-1".$period,
>>   		"-r",
>>   		"-t ".$Lang::tr{'firewall hits per'}." ".$Lang::tr{$period."-graph"},
>> -		"-v ".$Lang::tr{'bytes per second'},
>> +		"-v ".$Lang::tr{'bits per second'},
>>   		"--color=SHADEA".$color{"color19"},
>>   		"--color=SHADEB".$color{"color19"},
>>   		"--color=BACK".$color{"color21"},
>> @@ -692,36 +702,41 @@ sub updatefwhitsgraph {
>>   		"DEF:forward=".$mainsettings{'RRDLOG'}."/collectd/localhost/iptables-filter-POLICYFWD/ipt_bytes-DROP_FORWARD.rrd:value:AVERAGE",
>>   		"DEF:newnotsyn=".$mainsettings{'RRDLOG'}."/collectd/localhost/iptables-filter-NEWNOTSYN/ipt_bytes-DROP_NEWNOTSYN.rrd:value:AVERAGE",
>>   		"DEF:portscan=".$mainsettings{'RRDLOG'}."/collectd/localhost/iptables-filter-PSCAN/ipt_bytes-DROP_PScan.rrd:value:AVERAGE",
>> +		"CDEF:outputb=output,8,*",
>> +		"CDEF:inputb=input,8,*",
>> +		"CDEF:forwardb=forward,8,*",
>> +		"CDEF:newnotsynb=newnotsyn,8,*",
>> +		"CDEF:portscanb=portscan,8,*",
>>   		"COMMENT:".sprintf("%-26s",$Lang::tr{'caption'}),
>>   		"COMMENT:".sprintf("%15s",$Lang::tr{'maximal'}),
>>   		"COMMENT:".sprintf("%15s",$Lang::tr{'average'}),
>>   		"COMMENT:".sprintf("%14s",$Lang::tr{'minimal'}),
>>   		"COMMENT:".sprintf("%15s",$Lang::tr{'current'})."\\j",
>> -		"AREA:output".$color{"color25"}."A0:".sprintf("%-25s",$Lang::tr{'firewallhits'}." (OUTPUT)"),
>> -		"GPRINT:output:MAX:%8.1lf %sBps",
>> -		"GPRINT:output:AVERAGE:%8.1lf %sBps",
>> -		"GPRINT:output:MIN:%8.1lf %sBps",
>> -		"GPRINT:output:LAST:%8.1lf %sBps\\j",
>> -		"STACK:forward".$color{"color23"}."A0:".sprintf("%-25s",$Lang::tr{'firewallhits'}." (FORWARD)"),
>> -		"GPRINT:forward:MAX:%8.1lf %sBps",
>> -		"GPRINT:forward:AVERAGE:%8.1lf %sBps",
>> -		"GPRINT:forward:MIN:%8.1lf %sBps",
>> -		"GPRINT:forward:LAST:%8.1lf %sBps\\j",
>> -		"STACK:input".$color{"color24"}."A0:".sprintf("%-25s",$Lang::tr{'firewallhits'}." (INPUT)"),
>> -		"GPRINT:input:MAX:%8.1lf %sBps",
>> -		"GPRINT:input:AVERAGE:%8.1lf %sBps",
>> -		"GPRINT:input:MIN:%8.1lf %sBps",
>> -		"GPRINT:input:LAST:%8.1lf %sBps\\j",
>> -		"STACK:newnotsyn".$color{"color14"}."A0:".sprintf("%-25s","NewNotSYN"),
>> -		"GPRINT:newnotsyn:MAX:%8.1lf %sBps",
>> -		"GPRINT:newnotsyn:AVERAGE:%8.1lf %sBps",
>> -		"GPRINT:newnotsyn:MIN:%8.1lf %sBps",
>> -		"GPRINT:newnotsyn:LAST:%8.1lf %sBps\\j",
>> -		"STACK:portscan".$color{"color16"}."A0:".sprintf("%-25s",$Lang::tr{'portscans'}),
>> -		"GPRINT:portscan:MAX:%8.1lf %sBps",
>> -		"GPRINT:portscan:AVERAGE:%8.1lf %sBps",
>> -		"GPRINT:portscan:MIN:%8.1lf %sBps",
>> -		"GPRINT:portscan:LAST:%8.1lf %sBps\\j",
>> +		"AREA:outputb".$color{"color25"}."A0:".sprintf("%-25s",$Lang::tr{'firewallhits'}." (OUTPUT)"),
>> +		"GPRINT:outputb:MAX:%8.1lf %sbps",
>> +		"GPRINT:outputb:AVERAGE:%8.1lf %sbps",
>> +		"GPRINT:outputb:MIN:%8.1lf %sbps",
>> +		"GPRINT:outputb:LAST:%8.1lf %sbps\\j",
>> +		"STACK:forwardb".$color{"color23"}."A0:".sprintf("%-25s",$Lang::tr{'firewallhits'}." (FORWARD)"),
>> +		"GPRINT:forwardb:MAX:%8.1lf %sbps",
>> +		"GPRINT:forwardb:AVERAGE:%8.1lf %sbps",
>> +		"GPRINT:forwardb:MIN:%8.1lf %sbps",
>> +		"GPRINT:forwardb:LAST:%8.1lf %sbps\\j",
>> +		"STACK:inputb".$color{"color24"}."A0:".sprintf("%-25s",$Lang::tr{'firewallhits'}." (INPUT)"),
>> +		"GPRINT:inputb:MAX:%8.1lf %sbps",
>> +		"GPRINT:inputb:AVERAGE:%8.1lf %sbps",
>> +		"GPRINT:inputb:MIN:%8.1lf %sbps",
>> +		"GPRINT:inputb:LAST:%8.1lf %sbps\\j",
>> +		"STACK:newnotsynb".$color{"color14"}."A0:".sprintf("%-25s","NewNotSYN"),
>> +		"GPRINT:newnotsynb:MAX:%8.1lf %sbps",
>> +		"GPRINT:newnotsynb:AVERAGE:%8.1lf %sbps",
>> +		"GPRINT:newnotsynb:MIN:%8.1lf %sbps",
>> +		"GPRINT:newnotsynb:LAST:%8.1lf %sbps\\j",
>> +		"STACK:portscanb".$color{"color16"}."A0:".sprintf("%-25s",$Lang::tr{'portscans'}),
>> +		"GPRINT:portscanb:MAX:%8.1lf %sbps",
>> +		"GPRINT:portscanb:AVERAGE:%8.1lf %sbps",
>> +		"GPRINT:portscanb:MIN:%8.1lf %sbps",
>> +		"GPRINT:portscanb:LAST:%8.1lf %sbps\\j",
>>   		);
>>   		$ERROR = RRDs::error;
>>   		return "Error in RRD::graph for firewallhits: ".$ERROR."\n" if $ERROR;
>> @@ -1012,7 +1027,7 @@ sub updateqosgraph {
>>   		"-1".$period,
>>   		"-r",
>>   		"-t ".$Lang::tr{'Utilization on'}." (".$qossettings{'DEV'}.") ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"},
>> -		"-v ".$Lang::tr{'bytes per second'},
>> +		"-v ".$Lang::tr{'bits per second'},
>>   		"--color=SHADEA".$color{"color19"},
>>   		"--color=SHADEB".$color{"color19"},
>>   		"--color=BACK".$color{"color21"},
>> @@ -1039,21 +1054,24 @@ sub updateqosgraph {
>>   			}
>>   
>>   			if ( $classline[0] eq $qossettings{'DEV'} ){
>> -				push(@command, "DEF:$classline[1]=$mainsettings{'RRDLOG'}/class_$qossettings{'CLASSPRFX'}-$classline[1]_$qossettings{'DEV'}.rrd:bytes:AVERAGE");
>> +				# Found: ERROR: rpn expressions without DEF or CDEF variables are not supported
>> +				# CDEF does not like a number as a variable name. ie. "204" from $classline[1]
>> +				push(@command, "DEF:$classline[1]bit=$mainsettings{'RRDLOG'}/class_$qossettings{'CLASSPRFX'}-$classline[1]_$qossettings{'DEV'}.rrd:bytes:AVERAGE");
>> +				push(@command, "CDEF:$classline[8]=$classline[1]bit,8,*");
>>   
>>   				# get color to be used for this graph
>>   				my $graphColor = $colorMap{$colorKey};
>>   
>>   				if ($count eq "1") {
>> -					push(@command, "AREA:$classline[1]$graphColor:$Lang::tr{'Class'} $classline[1] -".sprintf("%15s",$classline[8]));
>> +					push(@command, "AREA:$classline[8]$graphColor:$Lang::tr{'Class'} $classline[1] -".sprintf("%15s",$classline[8]));
>>   				} else {
>> -					push(@command, "STACK:$classline[1]$graphColor:$Lang::tr{'Class'} $classline[1] -".sprintf("%15s",$classline[8]));
>> +					push(@command, "STACK:$classline[8]$graphColor:$Lang::tr{'Class'} $classline[1] -".sprintf("%15s",$classline[8]));
>>   				}
>>   
>> -				push(@command, "GPRINT:$classline[1]:MAX:%8.1lf %sBps"
>> -						, "GPRINT:$classline[1]:AVERAGE:%8.1lf %sBps"
>> -						, "GPRINT:$classline[1]:MIN:%8.1lf %sBps"
>> -						, "GPRINT:$classline[1]:LAST:%8.1lf %sBps\\j");
>> +				push(@command, "GPRINT:$classline[8]:MAX:%8.1lf %sbps"
>> +						, "GPRINT:$classline[8]:AVERAGE:%8.1lf %sbps"
>> +						, "GPRINT:$classline[8]:MIN:%8.1lf %sbps"
>> +						, "GPRINT:$classline[8]:LAST:%8.1lf %sbps\\j");
>>   				$count++;
>>   			}
>>   		}
>> diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl
>> index dc1fd8d67b30..b0097074beb0 100644
>> --- a/langs/en/cgi-bin/en.pl
>> +++ b/langs/en/cgi-bin/en.pl
>> @@ -515,6 +515,7 @@
>>   'broken pipe' => 'Broken pipe',
>>   'buffered memory' => 'Buffered Memory',
>>   'buffers' => 'buffers',
>> +'bits per second' => 'Bits per Second',
>>   'bytes per second' => 'Bytes per Second',
>>   'bytes received' => 'Bytes Received',
>>   'bytes sent' => 'Bytes Sent',
>> @@ -1431,10 +1432,10 @@
>>   'inactive' => 'inactive',
>>   'include logfiles' => 'Include logfiles',
>>   'incoming' => 'incoming',
>> -'incoming compression in bytes per second' => 'Incoming Compression',
>> +'incoming compression in bits per second' => 'Incoming Compression',
>>   'incoming firewall access' => 'Incoming Firewall Access',
>> -'incoming overhead in bytes per second' => 'Incoming Overhead',
>> -'incoming traffic in bytes per second' => 'Incoming Traffic',
>> +'incoming overhead in bits per second' => 'Incoming Overhead',
>> +'incoming traffic in bits per second' => 'Incoming Traffic',
>>   'incorrect password' => 'Incorrect password',
>>   'info' => 'Info',
>>   'init string' => 'Init:',
>> @@ -1907,7 +1908,7 @@
>>   'our donors' => 'Our donors',
>>   'out' => 'Out',
>>   'outgoing' => 'outgoing',
>> -'outgoing compression in bytes per second' => 'Outgoing compression',
>> +'outgoing compression in bits per second' => 'Outgoing compression',
>>   'outgoing firewall' => 'Outgoing Firewall',
>>   'outgoing firewall access' => 'Outgoing Firewall Access',
>>   'outgoing firewall add ip group' => 'Add IP Address Group',
>> @@ -1930,8 +1931,8 @@
>>   'outgoing firewall reset' => 'Reset all',
>>   'outgoing firewall view group' => 'View group',
>>   'outgoing firewall warning' => 'Not selecting source ip or mac ignores them',
>> -'outgoing overhead in bytes per second' => 'Outgoing Overhead',
>> -'outgoing traffic in bytes per second' => 'Outgoing Traffic',
>> +'outgoing overhead in bits per second' => 'Outgoing Overhead',
>> +'outgoing traffic in bits per second' => 'Outgoing Traffic',
>>   'override mtu' => 'Override default MTU',
>>   'ovpn' => 'OpenVPN',
>>   'ovpn add conf' => 'Additional configuration',
>>
> 

       reply	other threads:[~2021-05-24 19:43 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <be613c0f-b6d8-8c71-3b36-86f0247d81ba@ipfire.org>
2021-05-24 19:43 ` Bernhard Bitsch [this message]
2021-05-24 21:21   ` nateos2g
2021-05-24 14:04 nateos2g
     [not found] <mailman.0.1621829297.2683.development@lists.ipfire.org>
2021-05-24  4:31 ` nateos2g
2021-05-24 10:39   ` Matthias Fischer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8aebf43d-571a-bdbc-3d2d-131f5b81e4b0@ipfire.org \
    --to=bbitsch@ipfire.org \
    --cc=development@lists.ipfire.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox