increase channel buffer sizes to handle thousands of devices

Raise write channel from 500 to 10000, SNMP/monitoring result
channels from 1000 to 10000, MikroTik/credential channels to 5000.
Prevents silent data loss when polling thousands of devices.
This commit is contained in:
Graham McIntire 2026-02-12 09:50:46 -06:00
parent 8b866ae946
commit c57addc6c7
No known key found for this signature in database

View file

@ -77,7 +77,7 @@ func runSession(ctx context.Context, baseURL, token string) error {
slog.Info("connected", "agent_id", agentID)
// Channel for serializing WebSocket writes
writeCh := make(chan []byte, 500)
writeCh := make(chan []byte, 10000)
// Worker pools — bounded concurrency for each job type
pools := &jobPools{
@ -87,10 +87,10 @@ func runSession(ctx context.Context, baseURL, token string) error {
}
// Result channels
snmpResultCh := make(chan *pb.SnmpResult, 1000)
mikrotikResultCh := make(chan *pb.MikrotikResult, 1000)
credTestResultCh := make(chan *pb.CredentialTestResult, 1000)
monitoringCheckCh := make(chan *pb.MonitoringCheck, 1000)
snmpResultCh := make(chan *pb.SnmpResult, 10000)
mikrotikResultCh := make(chan *pb.MikrotikResult, 5000)
credTestResultCh := make(chan *pb.CredentialTestResult, 5000)
monitoringCheckCh := make(chan *pb.MonitoringCheck, 10000)
// Ref counter for outbound messages
var refCounter atomic.Uint64