Add cpu throttling stats.

Docker-DCO-1.1-Signed-off-by: Rohit Jnagal <jnagal@google.com> (github: rjnagal)
This commit is contained in:
Rohit Jnagal 2014-04-29 00:18:18 +00:00
parent 5479a8e86f
commit 51d9b2b0a0
2 changed files with 64 additions and 3 deletions

View file

@ -1,6 +1,9 @@
package fs
import (
"bufio"
"os"
"path/filepath"
"strconv"
)
@ -37,7 +40,25 @@ func (s *cpuGroup) Remove(d *data) error {
}
func (s *cpuGroup) Stats(d *data) (map[string]float64, error) {
// we can reuse the cpuacct subsystem to get the cpu stats
sys := subsystems["cpuacct"]
return sys.Stats(d)
paramData := make(map[string]float64)
path, err := d.path("cpu")
if err != nil {
return nil, err
}
f, err := os.Open(filepath.Join(path, "cpu.stat"))
if err != nil {
return nil, err
}
defer f.Close()
sc := bufio.NewScanner(f)
for sc.Scan() {
t, v, err := getCgroupParamKeyValue(sc.Text())
if err != nil {
return nil, err
}
paramData[t] = v
}
return paramData, nil
}