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_NAME|TRIGGER_NAME|TRIGGER_GROUP|JOB_NAME|JOB_GROUP|DESCRIPTION|NEXT_FIRE_TIME|PREV_FIRE_TIME|PRIORITY|TRIGGER_STATE|TRIGGER_TYPE|START_TIME|END_TIME|CALENDAR_NAME|MISFIRE_INSTR|JOB_DATA|
|----------|------------|-------------|--------|---------|-----------|--------------|--------------|--------|-------------|------------|----------|--------|-------------|-------------|--------|
|SnmpManager|trapCountThresholdTrigger|GRAILS_TRIGGERS|com.errigal.snmpmanager.jobs.TrapCountThresholdJob|TrapCountThresholdGroup||1597060800000|1597057200000|5|WAITING|CRON|1596021745000|0||0|0x|
Setting up TrapCountThreshold for the following traps:
|id|version|community|date|ip_address|name|name_oid|type|
|--|-------|---------|----|----------|----|--------|----|
|171539850|0|public|2020-08-10 05:39:15.0|10.88.24.198|txCardFaultAlarm|.1.3.6.1.4.1.43522.1.2.0.1|V2|
|171539851|0|public|2020-08-10 05:39:16.0|10.88.24.198|txCardFaultAlarm|.1.3.6.1.4.1.43522.1.2.0.1|V2|
|171539852|0|public|2020-08-10 05:39:16.0|10.88.24.198|txCardFaultAlarm|.1.3.6.1.4.1.43522.1.2.0.1|V2|
...
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:
|trapCount|id|trap_name|
|---------|--|---------|
|21|94421|txCardFaultAlarm|
|26|94422|txCardFaultAlarm|
Sample TrapCountThreshold config:
|id|version|enabled|snmp_manager_to_notify_ip_address|snmp_manager_to_notify_port|trap_count_threshold|trap_count_threshold_interval_in_hours|trap_name|trap_severity|
|--|-------|-------|---------------------------------|---------------------------|--------------------|--------------------------------------|---------|-------------|
|1|9|0|10.214.104.178|162|5|1|fwuRmtSystemVswrFault|major|
|2|2|1|10.91.202.197|162|20|5|txCardFaultAlarm|MAJOR|
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:
|id|ip_address|date|trap_name|alarm_identifier|network_element_id|
|--|----------|----|---------|----------------|------------------|
|171540072|10.91.202.199|2020-08-10 06:00:00.0|errigalApplicationSnmpTrapCountThresholdBreachedAlarm|TrapCountThresholdBreach-txCardFaultAlarm|94422|
|171540071|10.91.202.199|2020-08-10 06:00:00.0|errigalApplicationSnmpTrapCountThresholdBreachedAlarm|TrapCountThresholdBreach-txCardFaultAlarm|94421|