Skip to content

Commit 6eef6fb

Browse files
fhembergeroblitorum
authored andcommitted
Rename collector.filesystem flags to match other collectors
Ref: prometheus#1743 Fixes: prometheus#1994 Signed-off-by: Frederic Hemberger <mail@frederic-hemberger.de>
1 parent aedd0bf commit 6eef6fb

6 files changed

Lines changed: 78 additions & 42 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
## master / unreleased
22

3-
* [CHANGE]
3+
* [CHANGE] Rename flags `collector.filesystem.ignored-mount-points` and `collector.filesystem.ignored-fs-types` to match other collectors
44
* [FEATURE]
55
* [ENHANCEMENT]
66
* [BUGFIX]

collector/filesystem_bsd.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ import (
3232
import "C"
3333

3434
const (
35-
defIgnoredMountPoints = "^/(dev)($|/)"
36-
defIgnoredFSTypes = "^devfs$"
37-
readOnly = 0x1 // MNT_RDONLY
35+
defMountPointsExcluded = "^/(dev)($|/)"
36+
defFSTypesExcluded = "^devfs$"
37+
readOnly = 0x1 // MNT_RDONLY
3838
)
3939

4040
// Expose filesystem fullness.
@@ -49,14 +49,14 @@ func (c *filesystemCollector) GetStats() (stats []filesystemStats, err error) {
4949
stats = []filesystemStats{}
5050
for i := 0; i < int(count); i++ {
5151
mountpoint := C.GoString(&mnt[i].f_mntonname[0])
52-
if c.ignoredMountPointsPattern.MatchString(mountpoint) {
52+
if c.excludedMountPointsPattern.MatchString(mountpoint) {
5353
level.Debug(c.logger).Log("msg", "Ignoring mount point", "mountpoint", mountpoint)
5454
continue
5555
}
5656

5757
device := C.GoString(&mnt[i].f_mntfromname[0])
5858
fstype := C.GoString(&mnt[i].f_fstypename[0])
59-
if c.ignoredFSTypesPattern.MatchString(fstype) {
59+
if c.excludedFSTypesPattern.MatchString(fstype) {
6060
level.Debug(c.logger).Log("msg", "Ignoring fs type", "type", fstype)
6161
continue
6262
}

collector/filesystem_common.go

Lines changed: 58 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package collector
1818

1919
import (
20+
"errors"
2021
"regexp"
2122

2223
"github.com/go-kit/kit/log"
@@ -26,27 +27,44 @@ import (
2627
)
2728

2829
// Arch-dependent implementation must define:
29-
// * defIgnoredMountPoints
30-
// * defIgnoredFSTypes
30+
// * defMountPointsExcluded
31+
// * defFSTypesExcluded
3132
// * filesystemLabelNames
3233
// * filesystemCollector.GetStats
3334

3435
var (
35-
ignoredMountPoints = kingpin.Flag(
36+
mountPointsExcludeSet bool
37+
mountPointsExclude = kingpin.Flag(
38+
"collector.filesystem.mount-points-exclude",
39+
"Regexp of mount points to exclude for filesystem collector.",
40+
).Default(defMountPointsExcluded).PreAction(func(c *kingpin.ParseContext) error {
41+
mountPointsExcludeSet = true
42+
return nil
43+
}).String()
44+
oldMountPointsExcluded = kingpin.Flag(
3645
"collector.filesystem.ignored-mount-points",
3746
"Regexp of mount points to ignore for filesystem collector.",
38-
).Default(defIgnoredMountPoints).String()
39-
ignoredFSTypes = kingpin.Flag(
47+
).Hidden().String()
48+
49+
fsTypesExcludeSet bool
50+
fsTypesExclude = kingpin.Flag(
51+
"collector.filesystem.fs-types-exclude",
52+
"Regexp of filesystem types to exclude for filesystem collector.",
53+
).Default(defFSTypesExcluded).PreAction(func(c *kingpin.ParseContext) error {
54+
fsTypesExcludeSet = true
55+
return nil
56+
}).String()
57+
oldFSTypesExcluded = kingpin.Flag(
4058
"collector.filesystem.ignored-fs-types",
4159
"Regexp of filesystem types to ignore for filesystem collector.",
42-
).Default(defIgnoredFSTypes).String()
60+
).Hidden().String()
4361

4462
filesystemLabelNames = []string{"device", "mountpoint", "fstype"}
4563
)
4664

4765
type filesystemCollector struct {
48-
ignoredMountPointsPattern *regexp.Regexp
49-
ignoredFSTypesPattern *regexp.Regexp
66+
excludedMountPointsPattern *regexp.Regexp
67+
excludedFSTypesPattern *regexp.Regexp
5068
sizeDesc, freeDesc, availDesc *prometheus.Desc
5169
filesDesc, filesFreeDesc *prometheus.Desc
5270
roDesc, deviceErrorDesc *prometheus.Desc
@@ -70,11 +88,29 @@ func init() {
7088

7189
// NewFilesystemCollector returns a new Collector exposing filesystems stats.
7290
func NewFilesystemCollector(logger log.Logger) (Collector, error) {
91+
if *oldMountPointsExcluded != "" {
92+
if !mountPointsExcludeSet {
93+
level.Warn(logger).Log("msg", "--collector.filesystem.ignored-mount-points is DEPRECATED and will be removed in 2.0.0, use --collector.filesystem.mount-points-exclude")
94+
*mountPointsExclude = *oldMountPointsExcluded
95+
} else {
96+
return nil, errors.New("--collector.filesystem.ignored-mount-points and --collector.filesystem.mount-points-exclude are mutually exclusive")
97+
}
98+
}
99+
100+
if *oldFSTypesExcluded != "" {
101+
if !fsTypesExcludeSet {
102+
level.Warn(logger).Log("msg", "--collector.filesystem.ignored-fs-types is DEPRECATED and will be removed in 2.0.0, use --collector.filesystem.fs-types-exclude")
103+
*fsTypesExclude = *oldFSTypesExcluded
104+
} else {
105+
return nil, errors.New("--collector.filesystem.ignored-fs-types and --collector.filesystem.fs-types-exclude are mutually exclusive")
106+
}
107+
}
108+
73109
subsystem := "filesystem"
74-
level.Info(logger).Log("msg", "Parsed flag --collector.filesystem.ignored-mount-points", "flag", *ignoredMountPoints)
75-
mountPointPattern := regexp.MustCompile(*ignoredMountPoints)
76-
level.Info(logger).Log("msg", "Parsed flag --collector.filesystem.ignored-fs-types", "flag", *ignoredFSTypes)
77-
filesystemsTypesPattern := regexp.MustCompile(*ignoredFSTypes)
110+
level.Info(logger).Log("msg", "Parsed flag --collector.filesystem.mount-points-exclude", "flag", *mountPointsExclude)
111+
mountPointPattern := regexp.MustCompile(*mountPointsExclude)
112+
level.Info(logger).Log("msg", "Parsed flag --collector.filesystem.fs-types-exclude", "flag", *fsTypesExclude)
113+
filesystemsTypesPattern := regexp.MustCompile(*fsTypesExclude)
78114

79115
sizeDesc := prometheus.NewDesc(
80116
prometheus.BuildFQName(namespace, subsystem, "size_bytes"),
@@ -119,16 +155,16 @@ func NewFilesystemCollector(logger log.Logger) (Collector, error) {
119155
)
120156

121157
return &filesystemCollector{
122-
ignoredMountPointsPattern: mountPointPattern,
123-
ignoredFSTypesPattern: filesystemsTypesPattern,
124-
sizeDesc: sizeDesc,
125-
freeDesc: freeDesc,
126-
availDesc: availDesc,
127-
filesDesc: filesDesc,
128-
filesFreeDesc: filesFreeDesc,
129-
roDesc: roDesc,
130-
deviceErrorDesc: deviceErrorDesc,
131-
logger: logger,
158+
excludedMountPointsPattern: mountPointPattern,
159+
excludedFSTypesPattern: filesystemsTypesPattern,
160+
sizeDesc: sizeDesc,
161+
freeDesc: freeDesc,
162+
availDesc: availDesc,
163+
filesDesc: filesDesc,
164+
filesFreeDesc: filesFreeDesc,
165+
roDesc: roDesc,
166+
deviceErrorDesc: deviceErrorDesc,
167+
logger: logger,
132168
}, nil
133169
}
134170

collector/filesystem_freebsd.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ import (
2121
)
2222

2323
const (
24-
defIgnoredMountPoints = "^/(dev)($|/)"
25-
defIgnoredFSTypes = "^devfs$"
26-
readOnly = 0x1 // MNT_RDONLY
27-
noWait = 0x2 // MNT_NOWAIT
24+
defMountPointsExcluded = "^/(dev)($|/)"
25+
defFSTypesExcluded = "^devfs$"
26+
readOnly = 0x1 // MNT_RDONLY
27+
noWait = 0x2 // MNT_NOWAIT
2828
)
2929

3030
// Expose filesystem fullness.
@@ -41,14 +41,14 @@ func (c *filesystemCollector) GetStats() ([]filesystemStats, error) {
4141
stats := []filesystemStats{}
4242
for _, fs := range buf {
4343
mountpoint := bytesToString(fs.Mntonname[:])
44-
if c.ignoredMountPointsPattern.MatchString(mountpoint) {
44+
if c.excludedMountPointsPattern.MatchString(mountpoint) {
4545
level.Debug(c.logger).Log("msg", "Ignoring mount point", "mountpoint", mountpoint)
4646
continue
4747
}
4848

4949
device := bytesToString(fs.Mntfromname[:])
5050
fstype := bytesToString(fs.Fstypename[:])
51-
if c.ignoredFSTypesPattern.MatchString(fstype) {
51+
if c.excludedFSTypesPattern.MatchString(fstype) {
5252
level.Debug(c.logger).Log("msg", "Ignoring fs type", "type", fstype)
5353
continue
5454
}

collector/filesystem_linux.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ import (
3232
)
3333

3434
const (
35-
defIgnoredMountPoints = "^/(dev|proc|sys|var/lib/docker/.+)($|/)"
36-
defIgnoredFSTypes = "^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$"
35+
defMountPointsExcluded = "^/(dev|proc|sys|var/lib/docker/.+)($|/)"
36+
defFSTypesExcluded = "^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$"
3737
)
3838

3939
var mountTimeout = kingpin.Flag("collector.filesystem.mount-timeout",
@@ -50,11 +50,11 @@ func (c *filesystemCollector) GetStats() ([]filesystemStats, error) {
5050
}
5151
stats := []filesystemStats{}
5252
for _, labels := range mps {
53-
if c.ignoredMountPointsPattern.MatchString(labels.mountPoint) {
53+
if c.excludedMountPointsPattern.MatchString(labels.mountPoint) {
5454
level.Debug(c.logger).Log("msg", "Ignoring mount point", "mountpoint", labels.mountPoint)
5555
continue
5656
}
57-
if c.ignoredFSTypesPattern.MatchString(labels.fsType) {
57+
if c.excludedFSTypesPattern.MatchString(labels.fsType) {
5858
level.Debug(c.logger).Log("msg", "Ignoring fs", "type", labels.fsType)
5959
continue
6060
}

collector/filesystem_openbsd_amd64.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ import (
2222
)
2323

2424
const (
25-
defIgnoredMountPoints = "^/(dev)($|/)"
26-
defIgnoredFSTypes = "^devfs$"
25+
defMountPointsExcluded = "^/(dev)($|/)"
26+
defFSTypesExcluded = "^devfs$"
2727
)
2828

2929
// Expose filesystem fullness.
@@ -42,14 +42,14 @@ func (c *filesystemCollector) GetStats() (stats []filesystemStats, err error) {
4242
stats = []filesystemStats{}
4343
for _, v := range mnt {
4444
mountpoint := int8ToString(v.F_mntonname[:])
45-
if c.ignoredMountPointsPattern.MatchString(mountpoint) {
45+
if c.excludedMountPointsPattern.MatchString(mountpoint) {
4646
level.Debug(c.logger).Log("msg", "Ignoring mount point", "mountpoint", mountpoint)
4747
continue
4848
}
4949

5050
device := int8ToString(v.F_mntfromname[:])
5151
fstype := int8ToString(v.F_fstypename[:])
52-
if c.ignoredFSTypesPattern.MatchString(fstype) {
52+
if c.excludedFSTypesPattern.MatchString(fstype) {
5353
level.Debug(c.logger).Log("msg", "Ignoring fs type", "type", fstype)
5454
continue
5555
}

0 commit comments

Comments
 (0)