Read disk io information from /proc/diskstats. This will allow the user who provides partition container hints to get partition-specific io (blkio provides io for the container, but at the disk device level).
43 lines
944 B
Go
43 lines
944 B
Go
package fs
|
|
|
|
type DeviceInfo struct {
|
|
Device string
|
|
Major uint
|
|
Minor uint
|
|
}
|
|
|
|
type Fs struct {
|
|
DeviceInfo
|
|
Capacity uint64
|
|
Free uint64
|
|
DiskStats DiskStats
|
|
}
|
|
|
|
type DiskStats struct {
|
|
ReadsCompleted uint64
|
|
ReadsMerged uint64
|
|
SectorsRead uint64
|
|
ReadTime uint64
|
|
WritesCompleted uint64
|
|
WritesMerged uint64
|
|
SectorsWritten uint64
|
|
WriteTime uint64
|
|
IOInProgress uint64
|
|
IOTime uint64
|
|
WeightedIOTime uint64
|
|
}
|
|
|
|
type FsInfo interface {
|
|
// Returns capacity and free space, in bytes, of all the ext2, ext3, ext4 filesystems on the host.
|
|
GetGlobalFsInfo() ([]Fs, error)
|
|
|
|
// Returns capacity and free space, in bytes, of the set of mounts passed.
|
|
GetFsInfoForPath(mountSet map[string]struct{}) ([]Fs, error)
|
|
|
|
// Returns number of bytes occupied by 'dir'.
|
|
GetDirUsage(dir string) (uint64, error)
|
|
|
|
// Returns the block device info of the filesystem on which 'dir' resides.
|
|
GetDirFsDevice(dir string) (*DeviceInfo, error)
|
|
}
|