Hello,
I think almost all here know method "maximum of 95%" that used in telecommunication to measure normal maximum bandwidth of network channel without consideration of small bursts. Algorithm is quite simple: all values for given period sorted ascending, then 5% of top values dropped and final result is maximum of rest 95% values.
That algorithm usually used for billing purposes, but I think it also would be useful in zabbix triggers to determinate "normal" minimum and maximum for day bandwidth (without spikes and drops) and raise alerts when bandwidth goes far beyond this values. Previously I used average value for such checks, but random bursts of traffic significantly distort average value and checks become unreliable.
min95 function pretty similar to max95, but 5% of bottom values dropped and minimum of 95% rest values used.
Syntax of new function max95 and min95 is identical to regular max and min.
Following patch is against svn release 6165. It is unintrusive, but have one limitation. I've added function DBnum_rows to internal Zabbix API (which return number of th rows in result of SQL request) but wrote realization of it only for mysql case. If my patch would be accepted to mainline i can extend that function to other supported databases or may be this task can do someone else who more experienced with database programming.
I think almost all here know method "maximum of 95%" that used in telecommunication to measure normal maximum bandwidth of network channel without consideration of small bursts. Algorithm is quite simple: all values for given period sorted ascending, then 5% of top values dropped and final result is maximum of rest 95% values.
That algorithm usually used for billing purposes, but I think it also would be useful in zabbix triggers to determinate "normal" minimum and maximum for day bandwidth (without spikes and drops) and raise alerts when bandwidth goes far beyond this values. Previously I used average value for such checks, but random bursts of traffic significantly distort average value and checks become unreliable.
min95 function pretty similar to max95, but 5% of bottom values dropped and minimum of 95% rest values used.
Syntax of new function max95 and min95 is identical to regular max and min.
Following patch is against svn release 6165. It is unintrusive, but have one limitation. I've added function DBnum_rows to internal Zabbix API (which return number of th rows in result of SQL request) but wrote realization of it only for mysql case. If my patch would be accepted to mainline i can extend that function to other supported databases or may be this task can do someone else who more experienced with database programming.
Comment