From 833216dc9e729e9427f7c4cdf769be6d4b3f1d30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Knecht?= <bknecht@protonmail.ch> Date: Tue, 14 Jun 2022 20:04:59 +0200 Subject: [PATCH] collector: Make udev data path optional MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Instead of hard-coding the path to `/run/udev/data`, intoduce a `--path.udev.data` flag that defaults to that value. Signed-off-by: BenoƮt Knecht <bknecht@protonmail.ch> --- collector/diskstats_linux.go | 2 +- collector/paths.go | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/collector/diskstats_linux.go b/collector/diskstats_linux.go index 893684e5..83247828 100644 --- a/collector/diskstats_linux.go +++ b/collector/diskstats_linux.go @@ -349,7 +349,7 @@ func (c *diskstatsCollector) Update(ch chan<- prometheus.Metric) error { } func udevDeviceInformation(major, minor uint32) (udevInfo, error) { - filename := fmt.Sprintf("/run/udev/data/b%d:%d", major, minor) + filename := udevDataFilePath(fmt.Sprintf("b%d:%d", major, minor)) data, err := os.Open(filename) if err != nil { diff --git a/collector/paths.go b/collector/paths.go index 5f5a7b44..61aa6470 100644 --- a/collector/paths.go +++ b/collector/paths.go @@ -23,9 +23,10 @@ import ( var ( // The path of the proc filesystem. - procPath = kingpin.Flag("path.procfs", "procfs mountpoint.").Default(procfs.DefaultMountPoint).String() - sysPath = kingpin.Flag("path.sysfs", "sysfs mountpoint.").Default("/sys").String() - rootfsPath = kingpin.Flag("path.rootfs", "rootfs mountpoint.").Default("/").String() + procPath = kingpin.Flag("path.procfs", "procfs mountpoint.").Default(procfs.DefaultMountPoint).String() + sysPath = kingpin.Flag("path.sysfs", "sysfs mountpoint.").Default("/sys").String() + rootfsPath = kingpin.Flag("path.rootfs", "rootfs mountpoint.").Default("/").String() + udevDataPath = kingpin.Flag("path.udev.data", "udev data path.").Default("/run/udev/data").String() ) func procFilePath(name string) string { @@ -40,6 +41,10 @@ func rootfsFilePath(name string) string { return filepath.Join(*rootfsPath, name) } +func udevDataFilePath(name string) string { + return filepath.Join(*udevDataPath, name) +} + func rootfsStripPrefix(path string) string { if *rootfsPath == "/" { return path