mirror of
https://github.com/ceph/ceph-csi.git
synced 2025-06-03 04:16:42 +00:00
53 lines
900 B
Go
53 lines
900 B
Go
package fs2
|
|
|
|
import (
|
|
"bufio"
|
|
"os"
|
|
"strings"
|
|
|
|
"github.com/opencontainers/cgroups"
|
|
"github.com/opencontainers/cgroups/fscommon"
|
|
)
|
|
|
|
func statMisc(dirPath string, stats *cgroups.Stats) error {
|
|
for _, file := range []string{"current", "events"} {
|
|
fd, err := cgroups.OpenFile(dirPath, "misc."+file, os.O_RDONLY)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
s := bufio.NewScanner(fd)
|
|
for s.Scan() {
|
|
key, value, err := fscommon.ParseKeyValue(s.Text())
|
|
if err != nil {
|
|
fd.Close()
|
|
return err
|
|
}
|
|
|
|
key = strings.TrimSuffix(key, ".max")
|
|
|
|
if _, ok := stats.MiscStats[key]; !ok {
|
|
stats.MiscStats[key] = cgroups.MiscStats{}
|
|
}
|
|
|
|
tmp := stats.MiscStats[key]
|
|
|
|
switch file {
|
|
case "current":
|
|
tmp.Usage = value
|
|
case "events":
|
|
tmp.Events = value
|
|
}
|
|
|
|
stats.MiscStats[key] = tmp
|
|
}
|
|
fd.Close()
|
|
|
|
if err := s.Err(); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|