|
@@ -71,7 +71,8 @@ func (daemon *Daemon) ContainerStats(prefixOrName string, config *ContainerStats
|
|
return nil
|
|
return nil
|
|
}
|
|
}
|
|
|
|
|
|
- statsJSON := getStatJSON(v)
|
|
|
|
|
|
+ var statsJSON interface{}
|
|
|
|
+ statsJSONPost120 := getStatJSON(v)
|
|
if config.Version.LessThan("1.21") {
|
|
if config.Version.LessThan("1.21") {
|
|
var (
|
|
var (
|
|
rxBytes uint64
|
|
rxBytes uint64
|
|
@@ -83,7 +84,7 @@ func (daemon *Daemon) ContainerStats(prefixOrName string, config *ContainerStats
|
|
txErrors uint64
|
|
txErrors uint64
|
|
txDropped uint64
|
|
txDropped uint64
|
|
)
|
|
)
|
|
- for _, v := range statsJSON.Networks {
|
|
|
|
|
|
+ for _, v := range statsJSONPost120.Networks {
|
|
rxBytes += v.RxBytes
|
|
rxBytes += v.RxBytes
|
|
rxPackets += v.RxPackets
|
|
rxPackets += v.RxPackets
|
|
rxErrors += v.RxErrors
|
|
rxErrors += v.RxErrors
|
|
@@ -93,8 +94,8 @@ func (daemon *Daemon) ContainerStats(prefixOrName string, config *ContainerStats
|
|
txErrors += v.TxErrors
|
|
txErrors += v.TxErrors
|
|
txDropped += v.TxDropped
|
|
txDropped += v.TxDropped
|
|
}
|
|
}
|
|
- statsJSONPre121 := &v1p20.StatsJSON{
|
|
|
|
- Stats: statsJSON.Stats,
|
|
|
|
|
|
+ statsJSON = &v1p20.StatsJSON{
|
|
|
|
+ Stats: statsJSONPost120.Stats,
|
|
Network: types.NetworkStats{
|
|
Network: types.NetworkStats{
|
|
RxBytes: rxBytes,
|
|
RxBytes: rxBytes,
|
|
RxPackets: rxPackets,
|
|
RxPackets: rxPackets,
|
|
@@ -106,20 +107,8 @@ func (daemon *Daemon) ContainerStats(prefixOrName string, config *ContainerStats
|
|
TxDropped: txDropped,
|
|
TxDropped: txDropped,
|
|
},
|
|
},
|
|
}
|
|
}
|
|
-
|
|
|
|
- if !config.Stream && noStreamFirstFrame {
|
|
|
|
- // prime the cpu stats so they aren't 0 in the final output
|
|
|
|
- noStreamFirstFrame = false
|
|
|
|
- continue
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if err := enc.Encode(statsJSONPre121); err != nil {
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if !config.Stream {
|
|
|
|
- return nil
|
|
|
|
- }
|
|
|
|
|
|
+ } else {
|
|
|
|
+ statsJSON = statsJSONPost120
|
|
}
|
|
}
|
|
|
|
|
|
if !config.Stream && noStreamFirstFrame {
|
|
if !config.Stream && noStreamFirstFrame {
|