From ce10dbad60809d6d724013cf12e917a789d05490 Mon Sep 17 00:00:00 2001 From: rcourtman Date: Sun, 14 Dec 2025 21:10:06 +0000 Subject: [PATCH] feat(docker-agent): add payload size logging for debugging body-too-large errors Related to #823 - Log payload size (in KB and bytes) at debug level - Warn when payload approaches 400KB (512KB limit) - Helps diagnose 'request body too large' errors --- internal/dockeragent/agent.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/internal/dockeragent/agent.go b/internal/dockeragent/agent.go index a520b24..63430dd 100644 --- a/internal/dockeragent/agent.go +++ b/internal/dockeragent/agent.go @@ -1053,8 +1053,20 @@ func (a *Agent) sendReport(ctx context.Context, report agentsdocker.Report) erro return errors.Join(errs...) } + // Warn if payload is approaching the server's 512KB limit + const warnThresholdKB = 400 + payloadSizeKB := len(payload) / 1024 + if payloadSizeKB >= warnThresholdKB { + a.logger.Warn(). + Int("containers", containerCount). + Int("payloadSizeKB", payloadSizeKB). + Msg("Report payload is large and approaching the 512KB limit. Consider reducing container count or running 'docker container prune' to remove stopped containers.") + } + a.logger.Debug(). Int("containers", containerCount). + Int("payloadSizeKB", payloadSizeKB). + Int("payloadBytes", len(payload)). Int("targets", len(a.targets)). Msg("Report sent to Pulse targets") return nil