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