towerops/lib
Graham McIntire fed1b3ecfc
feat: parallelize SNMP polling with Task.Supervisor and async streams
Architecture improvements:
- Add Task.Supervisor (PollerTaskSupervisor) to supervision tree for parallel operations
- Parallelize device-level operations: sensors, interfaces, changes, neighbors run concurrently
- Parallelize sensor polling within device using Task.async_stream (max 10 concurrent)
- Parallelize interface polling using Task.async_stream (max 10 concurrent)
- Parallelize interface changes checking using Task.async_stream (max 10 concurrent)

Benefits:
- Device with 50 sensors: ~5x faster (10 parallel vs sequential)
- Device with 24 interfaces: ~2.4x faster (10 parallel vs sequential)
- 4 device operations (sensors/interfaces/changes/neighbors): run concurrently
- Proper supervision and timeout handling with Task.Supervisor.async_nolink
- Graceful failure handling with Task.yield_many

Example: Device with 50 sensors + 24 interfaces:
- Before: ~74 seconds (50 + 24 sequential)
- After: ~7.4 seconds (5 + 2.4 parallel + concurrent operations)
2026-01-18 10:09:52 -06:00
..
mix/tasks refactor: use API token auth for profile imports instead of session cookies 2026-01-18 09:30:21 -06:00
towerops feat: parallelize SNMP polling with Task.Supervisor and async streams 2026-01-18 10:09:52 -06:00
towerops_web fix: prevent telemetry errors when Exq is not running 2026-01-18 10:00:14 -06:00
towerops.ex init 2025-12-21 11:10:43 -06:00
towerops_web.ex separate out marketing layouts 2026-01-06 14:46:39 -06:00