Cacti (home)ForumsDocumentation
Cacti: offical forums and support
It is currently Sat May 27, 2017 6:14 pm

All times are UTC - 5 hours




Post new topic Reply to topic  [ 5 posts ] 
Author Message
 Post subject: [Error] Threshold 100G Interface
PostPosted: Thu May 12, 2016 10:08 am 
Offline

Joined: Thu May 12, 2016 5:55 am
Posts: 1
Congratulations for this fantastic software.

I have a Threshold applied on a 100Gbps interface, to alert me when the total traffic, reaches 15% and 17% of their capacity.

The threshold works fine until the traffic of the interface reaches a little more than 34Gbps, and return to normal values when the traffic return below 34Gbps.

To find the percentage of utilization a have the following RPN Expression: “|ds:traffic_in|,8,*,1000000,/,|query_ifHighSpeed|,/,100,*”

In the image attached is an example of the breach. The “Current value” in the image are in Bytes.

Before reaches 34Gbps: Current Value = 3 351 335 882.2 Bytes = 26.8107Gbps
After reaches 34Gbps: Current Value = 4 863 133 878.5 Bytes = 38.9051Gbps

Any help would be appreciated.

Operating System : Unix
Webserver : Apache
Cacti : 0.8.8g
Spine : 0.8.8f
MySQL : 5.5.47-0+deb7u1 (Debian)
PHP : 5.4.45-0+deb7u2
RRDTool : 1.5.5
Net-SNMP : 5.4.3
Plugin Architecture : 3.1
Plugins Instaled
Autom8 : 0.31
Aggregate : 1.01
Settings : 0.71
Discovery : 1.5
Weathermap : 0.97b
Realtime : 0.5
Spikekill : 1.3
Thold : 0.5


Attachments:
Before and After 34Gbps.png
Before and After 34Gbps.png [ 13.08 KiB | Viewed 3042 times ]
Top
 Profile  
 
 Post subject: Re: [Error] Threshold 100G Interface
PostPosted: Wed Nov 16, 2016 7:38 pm 
Offline

Joined: Fri Apr 19, 2013 4:38 am
Posts: 4
I appear to have the same issue with monitoring interfaces that go above 34Gbps, both physical 100G interfaces and aggregates. Setting up baseline monitoring to alert on percentage changes things work fine at low bandwidth but the figure for the current value reported goes out of whack over 34Gbps.

The attached shows the odd figure for the current value as well as the accurate +/- percentage values that are to be alerted on, so I'm unsure as to why thold is accurately calculating the +/- % values with showing an inaccurate current value. Any help would be greatly appreciated.


Attachments:
thold123.jpg
thold123.jpg [ 30.03 KiB | Viewed 1617 times ]
Top
 Profile  
 
 Post subject: Re: [Error] Threshold 100G Interface
PostPosted: Thu Nov 17, 2016 5:28 pm 
Offline

Joined: Fri Apr 19, 2013 4:38 am
Posts: 4
There's a section of the thold_get_currentval function in thold_functions.php that looks to be causing this for me -

/* assume counter reset if greater than max value */
if ($t_item['rrd_maximum'] > 0 && $currentval > $t_item['rrd_maximum']) {
$currentval = $item[$t_item['name']] / $polling_interval;
}elseif ($t_item['rrd_maximum'] == 0 && $currentval > 4.25E+9) {
$currentval = $item[$t_item['name']] / $polling_interval;
}

Commenting this section out has resolved my issue for the moment, although currently not sure if it's a valid long term solution.


Top
 Profile  
 
 Post subject: Re: [Error] Threshold 100G Interface
PostPosted: Thu May 11, 2017 11:16 am 
Offline

Joined: Wed Jul 20, 2011 1:42 pm
Posts: 2
Location: Brazil
Problem is counter interfaces 32 bits and interface counter 64 bits overflow add variable $icounter
Put the variable a to differentiate.

if ($item[$thold_data['name']] >= $thold_data['oldvalue']) {
// Everything is normal
$currentval = $item[$thold_data['name']] - $thold_data['oldvalue'];
} else {
// Possible overflow, see if its 32bit or 64bit
if ($thold_data['oldvalue'] > 4294967295) {
$currentval = (18446744073709551615 - $thold_data['oldvalue']) + $item[$thold_data['name']];
$icounter = 64; // is counter 64bits
} else {
$currentval = (4294967295 - $thold_data['oldvalue']) + $item[$thold_data['name']];
$icounter = 32; // is counter 32bits
}
}

$currentval = $currentval / $polling_interval;

plugin_log("NOTE COUNTER: '$currentval'", false, "THOLD");

/* assume counter reset if greater than max value */
if ($thold_data['rrd_maximum'] > 0 && $currentval > $thold_data['rrd_maximum']) {
$currentval = $item[$thold_data['name']] / $polling_interval;
}elseif ($thold_data['rrd_maximum'] == 0 && $currentval > 4.25E+9 && $icounter == 32) {
$currentval = $item[$thold_data['name']] / $polling_interval;
}

_________________
MOTTAMOURA


Top
 Profile  
 
 Post subject: Re: [Error] Threshold 100G Interface
PostPosted: Mon May 15, 2017 12:57 am 
Offline
Cacti User
User avatar

Joined: Mon Jan 05, 2015 10:10 am
Posts: 289
Can you create a pull request for that into GitHub? Also, please insure that the max values in your RRDfiles are correct. You may be overflowing your RRDfile.

_________________
Before history, there was a paradise, now dust.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 5 posts ] 

All times are UTC - 5 hours


Who is online

Users browsing this forum: No registered users and 5 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  

Protected by Anti-Spam ACP Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group