Refactor stats and add them to all subsystems

Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@crosbymichael.com> (github: crosbymichael)
This commit is contained in:
Michael Crosby 2014-04-20 12:02:39 -07:00
parent b5b44ad439
commit ab15aa234c
10 changed files with 88 additions and 61 deletions

View file

@ -25,29 +25,33 @@ func (s *blkioGroup) Remove(d *data) error {
}
func (s *blkioGroup) Stats(d *data) (map[string]float64, error) {
paramData := make(map[string]float64)
var (
paramData = make(map[string]float64)
params = []string{
"sectors",
"io_service_bytes",
"io_serviced",
"io_queued",
}
)
path, err := d.path("blkio")
if err != nil {
return paramData, fmt.Errorf("Unable to read %s cgroup param: %s", path, err)
}
params := []string{
"sectors",
"io_service_bytes",
"io_serviced",
"io_queued",
return nil, err
}
for _, param := range params {
p := fmt.Sprintf("blkio.%s", param)
f, err := os.Open(filepath.Join(path, p))
f, err := os.Open(filepath.Join(path, fmt.Sprintf("blkio.%s", param)))
if err != nil {
return paramData, err
return nil, err
}
defer f.Close()
sc := bufio.NewScanner(f)
for sc.Scan() {
_, v, err := getCgroupParamKeyValue(sc.Text())
if err != nil {
return paramData, fmt.Errorf("Error parsing param data: %s", err)
return nil, err
}
paramData[param] = v
}