我必须比较一个小时内(例如项目数量)在两个方向(上升和下降)上变化的两个值。如果金额下降或上升超过 20%,我可以使用什么公式来计算?Zabbix 计算值是否支持支持正负变化的条件,或者可以绕过它?
我正在尝试写这样的东西:
{api20prod:mysql.get_active_offers.count(0)}/{api20prod:mysql.get_active_offers.count(,,,1h)}*100 > 20
但是如果 mysql.get_active_offers.count(0) 比 mysql.get_active_offers.count(,,,1h) 多呢?
您不能使用“简单更改”预处理器,因为:
如果当前值小于前一个值,Zabbix 将丢弃该差异(不存储任何内容)并等待另一个值。
如果您将项目设置为 1 小时检查间隔(或在每小时的特定分钟内设置预定间隔),则可以使用last()
函数来实现。
假设在 12:00 您的项目等于 25,在 13:00 等于 38:
last()
不带参数调用会返回38last(#2)
将返回 25您可以使用以下方法计算每小时读数 delta %:
100 * ({api20prod:mysql.get_active_offers.last()} - {api20prod:mysql.get_active_offers.last(#2)}) / {api20prod:mysql.get_active_offers.last(#2)}
此语法应在触发器或计算项中工作,选择更适合您的一种:我建议计算项。
当然,你的触发器会有双重条件:你需要匹配 "> 20" OR "< -20"
如果您不想更改项目的检查间隔,您可以使用该avg()
功能,请参阅文档。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句