package supervisor import ( "time" "github.com/containerd/containerd/runtime" ) // StatsTask holds needed parameters to retrieve a container statistics type StatsTask struct { baseTask ID string Stat chan *runtime.Stat } func (s *Supervisor) stats(t *StatsTask) error { start := time.Now() i, ok := s.containers[t.ID] if !ok { return ErrContainerNotFound } // TODO: use workers for this go func() { s, err := i.container.Stats() if err != nil { t.ErrorCh() <- err return } t.ErrorCh() <- nil t.Stat <- s ContainerStatsTimer.UpdateSince(start) }() return errDeferredResponse }