TrapCountThreshold runs as a Quartz job and can be seen via the controller (/SnmpManager/quartz/list) or as a config entry:

select * from snmp_manager.QRTZ_CLUSTER_TRIGGERS where JOB_NAME  = 'com.errigal.snmpmanager.jobs.TrapCountThresholdJob';
SCHED_NAMETRIGGER_NAMETRIGGER_GROUPJOB_NAMEJOB_GROUPDESCRIPTIONNEXT_FIRE_TIMEPREV_FIRE_TIMEPRIORITYTRIGGER_STATETRIGGER_TYPESTART_TIMEEND_TIMECALENDAR_NAMEMISFIRE_INSTRJOB_DATA
———-————————-——–——————–————–————–——–————-———————-——–————-————-——–
SnmpManagertrapCountThresholdTriggerGRAILS_TRIGGERScom.errigal.snmpmanager.jobs.TrapCountThresholdJobTrapCountThresholdGroup159706080000015970572000005WAITINGCRON1596021745000000x

Setting up TrapCountThreshold for the following traps:

idversioncommunitydateip_addressnamename_oidtype
——-————-———-—-——–—-
1715398500public2020-08-10 05:39:15.010.88.24.198txCardFaultAlarm.1.3.6.1.4.1.43522.1.2.0.1V2
1715398510public2020-08-10 05:39:16.010.88.24.198txCardFaultAlarm.1.3.6.1.4.1.43522.1.2.0.1V2
1715398520public2020-08-10 05:39:16.010.88.24.198txCardFaultAlarm.1.3.6.1.4.1.43522.1.2.0.1V2

When the job runs, traps are queries with the below statement:

SELECT count(*) as trapCount, ne.id, gts.trap_name
FROM snmp_manager.general_trap_summary gts, snmp_manager.network_element ne
WHERE gts.trap_name LIKE ${TrapName}
AND gts.received_date > date_sub(now(), interval ${TrapCountThresholdIntervalInHours} hour)
AND gts.alarm_status= ${TrapSeverity}
AND gts.network_element_id = ne.id
GROUP BY ne.id, gts.trap_name;

Sample result list for VoltServer traps:

trapCountidtrap_name
——————
2194421txCardFaultAlarm
2694422txCardFaultAlarm

Sample TrapCountThreshold config:

idversionenabledsnmp_manager_to_notify_ip_addresssnmp_manager_to_notify_porttrap_count_thresholdtrap_count_threshold_interval_in_hourstrap_nametrap_severity
——-——-——————————————————————————–————————————–———————-
19010.214.104.17816251fwuRmtSystemVswrFaultmajor
22110.91.202.197162205txCardFaultAlarmMAJOR

For the functionality to kick-off, the returned trapCount from the first result set has to be greater than the configured trap_count_threshold in the trap_count_threshold configuration in the second result set.

The system will then send a Trap Breached Threshold alarm with parameters from the first result set.

Resulting GTS info based on the above configuration:

idip_addressdatetrap_namealarm_identifiernetwork_element_id
———-—-————————-——————
17154007210.91.202.1992020-08-10 06:00:00.0errigalApplicationSnmpTrapCountThresholdBreachedAlarmTrapCountThresholdBreach-txCardFaultAlarm94422
17154007110.91.202.1992020-08-10 06:00:00.0errigalApplicationSnmpTrapCountThresholdBreachedAlarmTrapCountThresholdBreach-txCardFaultAlarm94421