|
|
|
@ -24,18 +24,16 @@ import (
|
|
|
|
|
const (
|
|
|
|
|
defMountPointsExcluded = "^/(dev)($|/)"
|
|
|
|
|
defFSTypesExcluded = "^devfs$"
|
|
|
|
|
readOnly = 0x1 // MNT_RDONLY
|
|
|
|
|
noWait = 0x2 // MNT_NOWAIT
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// Expose filesystem fullness.
|
|
|
|
|
func (c *filesystemCollector) GetStats() ([]filesystemStats, error) {
|
|
|
|
|
n, err := unix.Getfsstat(nil, noWait)
|
|
|
|
|
n, err := unix.Getfsstat(nil, unix.MNT_NOWAIT)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
buf := make([]unix.Statfs_t, n)
|
|
|
|
|
_, err = unix.Getfsstat(buf, noWait)
|
|
|
|
|
_, err = unix.Getfsstat(buf, unix.MNT_NOWAIT)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
@ -54,8 +52,13 @@ func (c *filesystemCollector) GetStats() ([]filesystemStats, error) {
|
|
|
|
|
continue
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (fs.Flags & unix.MNT_IGNORE) != 0 {
|
|
|
|
|
level.Debug(c.logger).Log("msg", "Ignoring mount flagged as ignore", "mountpoint", mountpoint)
|
|
|
|
|
continue
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var ro float64
|
|
|
|
|
if (fs.Flags & readOnly) != 0 {
|
|
|
|
|
if (fs.Flags & unix.MNT_RDONLY) != 0 {
|
|
|
|
|
ro = 1
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|