Move RO status before error return

Signed-off-by: Metbog <metbog@gmail.com>
This commit is contained in:
Metbog 2023-09-19 15:55:58 +03:00 committed by Johannes 'fish' Ziemke
parent f34aaa6109
commit e387997e4c
2 changed files with 14 additions and 11 deletions

View file

@ -186,6 +186,11 @@ func (c *filesystemCollector) Update(ch chan<- prometheus.Metric) error {
c.deviceErrorDesc, prometheus.GaugeValue, c.deviceErrorDesc, prometheus.GaugeValue,
s.deviceError, s.labels.device, s.labels.mountPoint, s.labels.fsType, s.deviceError, s.labels.device, s.labels.mountPoint, s.labels.fsType,
) )
ch <- prometheus.MustNewConstMetric(
c.roDesc, prometheus.GaugeValue,
s.ro, s.labels.device, s.labels.mountPoint, s.labels.fsType,
)
if s.deviceError > 0 { if s.deviceError > 0 {
continue continue
} }
@ -210,10 +215,6 @@ func (c *filesystemCollector) Update(ch chan<- prometheus.Metric) error {
c.filesFreeDesc, prometheus.GaugeValue, c.filesFreeDesc, prometheus.GaugeValue,
s.filesFree, s.labels.device, s.labels.mountPoint, s.labels.fsType, s.filesFree, s.labels.device, s.labels.mountPoint, s.labels.fsType,
) )
ch <- prometheus.MustNewConstMetric(
c.roDesc, prometheus.GaugeValue,
s.ro, s.labels.device, s.labels.mountPoint, s.labels.fsType,
)
} }
return nil return nil
} }

View file

@ -109,6 +109,14 @@ func (c *filesystemCollector) GetStats() ([]filesystemStats, error) {
} }
func (c *filesystemCollector) processStat(labels filesystemLabels) filesystemStats { func (c *filesystemCollector) processStat(labels filesystemLabels) filesystemStats {
var ro float64
for _, option := range strings.Split(labels.options, ",") {
if option == "ro" {
ro = 1
break
}
}
success := make(chan struct{}) success := make(chan struct{})
go stuckMountWatcher(labels.mountPoint, success, c.logger) go stuckMountWatcher(labels.mountPoint, success, c.logger)
@ -129,16 +137,10 @@ func (c *filesystemCollector) processStat(labels filesystemLabels) filesystemSta
return filesystemStats{ return filesystemStats{
labels: labels, labels: labels,
deviceError: 1, deviceError: 1,
ro: ro,
} }
} }
var ro float64
for _, option := range strings.Split(labels.options, ",") {
if option == "ro" {
ro = 1
break
}
}
return filesystemStats{ return filesystemStats{
labels: labels, labels: labels,
size: float64(buf.Blocks) * float64(buf.Bsize), size: float64(buf.Blocks) * float64(buf.Bsize),