mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #14488 from HuKeping/fixstats
Fix connection block when using docker stats API
This commit is contained in:
commit
5f5d73d515
2 changed files with 19 additions and 3 deletions
|
@ -61,10 +61,16 @@ func (s *containerStats) Collect(cli *DockerCli, streamStats bool) {
|
||||||
u <- err
|
u <- err
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
var (
|
|
||||||
|
var memPercent = 0.0
|
||||||
|
var cpuPercent = 0.0
|
||||||
|
|
||||||
|
// MemoryStats.Limit will never be 0 unless the container is not running and we havn't
|
||||||
|
// got any data from cgroup
|
||||||
|
if v.MemoryStats.Limit != 0 {
|
||||||
memPercent = float64(v.MemoryStats.Usage) / float64(v.MemoryStats.Limit) * 100.0
|
memPercent = float64(v.MemoryStats.Usage) / float64(v.MemoryStats.Limit) * 100.0
|
||||||
cpuPercent = 0.0
|
}
|
||||||
)
|
|
||||||
previousCPU = v.PreCPUStats.CPUUsage.TotalUsage
|
previousCPU = v.PreCPUStats.CPUUsage.TotalUsage
|
||||||
previousSystem = v.PreCPUStats.SystemUsage
|
previousSystem = v.PreCPUStats.SystemUsage
|
||||||
cpuPercent = calculateCPUPercent(previousCPU, previousSystem, v)
|
cpuPercent = calculateCPUPercent(previousCPU, previousSystem, v)
|
||||||
|
|
|
@ -74,6 +74,16 @@ func (s *Server) getContainersStats(version version.Version, w http.ResponseWrit
|
||||||
}
|
}
|
||||||
|
|
||||||
stream := boolValueOrDefault(r, "stream", true)
|
stream := boolValueOrDefault(r, "stream", true)
|
||||||
|
|
||||||
|
// If the container is not running and requires no stream, return an empty stats.
|
||||||
|
container, err := s.daemon.Get(vars["name"])
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if !container.IsRunning() && !stream {
|
||||||
|
return writeJSON(w, http.StatusOK, &types.Stats{})
|
||||||
|
}
|
||||||
|
|
||||||
var out io.Writer
|
var out io.Writer
|
||||||
if !stream {
|
if !stream {
|
||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue