KE
feat: add SNMP provider
keephq/keep#5564

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

Claim

Total prize pool $200
Total paid $0
Status Pending
Submitted February 04, 2026
Last updated February 04, 2026

Contributors

ZE

zekebawt

@zekebawt

100%

Sponsors

KE

Keep (YC W23)

@keephq

$200