From 380dd8357ff7f750a1f2fabff6e5c45002a9305a Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Tue, 4 Jun 2019 20:08:21 +0000 Subject: [PATCH] fix(probe): Use a buffered chan to reduce the chance of losing events Event notifications from Docker will be dropped if not collected quickly enough; using a buffered chan reduces the chance of this happening. --- probe/docker/registry.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/probe/docker/registry.go b/probe/docker/registry.go index b92d0b8f3..df49b00f7 100644 --- a/probe/docker/registry.go +++ b/probe/docker/registry.go @@ -176,7 +176,9 @@ func (r *registry) listenForEvents() bool { // Next, start listening for events. We do this before fetching // the list of containers so we don't miss containers created // after listing but before listening for events. - events := make(chan *docker_client.APIEvents) + // Use a buffered chan so the client library can run ahead of the listener + // - Docker will drop an event if it is not collected quickly enough. + events := make(chan *docker_client.APIEvents, 1024) if err := r.client.AddEventListener(events); err != nil { log.Errorf("docker registry: %s", err) return true