github.com/zhuohuang-hust/src-cbuild@v0.0.0-20230105071821-c7aab3e7c840/mergeCode/containerd/supervisor/stats.go (about) 1 package supervisor 2 3 import ( 4 "time" 5 6 "os" 7 "log" 8 9 "github.com/docker/containerd/runtime" 10 ) 11 12 // StatsTask holds needed parameters to retrieve a container statistics 13 type StatsTask struct { 14 baseTask 15 ID string 16 Stat chan *runtime.Stat 17 } 18 19 func (s *Supervisor) stats(t *StatsTask) error { 20 start := time.Now() 21 i, ok := s.containers[t.ID] 22 if !ok { 23 logPrintServeriStats("stats") 24 return ErrContainerNotFound 25 } 26 // TODO: use workers for this 27 go func() { 28 s, err := i.container.Stats() 29 if err != nil { 30 t.ErrorCh() <- err 31 return 32 } 33 t.ErrorCh() <- nil 34 t.Stat <- s 35 ContainerStatsTimer.UpdateSince(start) 36 }() 37 return errDeferredResponse 38 } 39 40 41 func logPrintServeriStats(errStr string) { 42 logFile, logError := os.Open("/home/vagrant/statslogServer.md") 43 if logError != nil { 44 logFile, _ = os.Create("/home/vagrant/statslogServer.md") 45 } 46 defer logFile.Close() 47 48 debugLog := log.New(logFile, "[Debug]", log.Llongfile) 49 debugLog.Println(errStr) 50 }