This PR implements an SNMP provider to receive SNMP traps as alerts in Keep.
Summary
Webhook-based SNMP provider that ingests SNMP v1/v2c/v3 traps and converts them to Keep alerts.
Features
- 🌐 Multi-version support: SNMP v1, v2c, and v3
- 🎯 Smart severity mapping: Automatic severity detection from trap types, OIDs, and varbinds
- ✅ Status detection: Automatic firing/resolved status from trap types (linkUp/linkDown)
- 📦 Varbind parsing: Full support for SNMP variable bindings
- 🔧 Standard trap support: coldStart, warmStart, linkDown, linkUp, authenticationFailure, egpNeighborLoss
- 🧪 Comprehensive tests: 17 test cases covering various SNMP scenarios
Supported Trap Types
- Standard SNMPv1 traps (coldStart, warmStart, linkDown, linkUp, authenticationFailure, egpNeighborLoss)
- Enterprise-specific traps
- Cisco, Juniper, and other vendor traps
Example Webhook Payload
curl -X POST '‘https://api.keephq.dev/alerts/event/snmp'\’
-H '‘Content-Type: application/json’'
-H '‘X-API-KEY: your-api-key’'
-d '’{
'’'‘version'’'’: '’'‘v2c'’'’,
'’'‘community'’'’: '’'‘public'’'’,
'’'‘enterprise'’'’: '’'‘1.3.6.1.4.1.8072.2.3'’'’,
'’'‘agentAddress'’'’: '’'‘192.168.1.100'’'’,
'’'‘trapType'’'’: '’'‘enterpriseSpecific'’'’,
'’'‘specificTrap'’'’: 1,
'’'‘uptime'’'’: '’'‘123456789'’'’,
'’'‘varbinds'’'’: {
'’'‘1.3.6.1.4.1.8072.2.3.2.1'’'’: '’'‘Test message'’'’
}
}'’
Test Coverage
- Basic trap parsing
- Link up/down trap detection
- Varbind extraction
- Severity mapping (explicit fields and OID inference)
- Status detection
- Cisco-specific traps
- SNMPv3 support
- Alert ID uniqueness
- Description formatting
Closes #2112
/claim #2112