我目前正在评估在 snmp 环境中使用的siddhi。POC 是围绕网络接口利用率构建的。
流定义为:
define stream interfaceStatsEvents (nodeName string, sdate double, ifSpeed long, ifIndex string, ifAdminStatus string, ifOperStatus string,
ifInDiscards long, ifInErrors long, ifOutDiscards long, ifOutErrors long, ifInOctets long, ifOutOctets long)
计算接口利用率的查询为:
from every (e1 = interfaceStatsEvents -> e2 = interfaceStatsEvents[nodeName == e1.nodeName and ifIndex == e1.ifIndex])
select e1.nodeName, e1.ifIndex, ((e2.ifInOctets - e1.ifInOctets) * 8 * 100) / (((e2.sdate - e1.sdate) / 1000) * e1.ifSpeed) as utilization
insert into interfaceUtilization;
问题是查询似乎只运行一次。向interfaceStatsEvents流添加了4 个事件 。期望为interfaceUtilization生成 3 个事件,而不是仅生成一个事件。
有没有人知道原因或如何修复查询?