mirror of
https://github.com/prometheus/node_exporter.git
synced 2025-01-03 09:57:47 -08:00
Merge pull request #374 from prometheus/fish-add-filesystem-errors
Add node_filesystem_device_errors_total metric
This commit is contained in:
commit
d506b2266c
|
@ -48,6 +48,7 @@ type filesystemCollector struct {
|
||||||
ignoredFSTypesPattern *regexp.Regexp
|
ignoredFSTypesPattern *regexp.Regexp
|
||||||
sizeDesc, freeDesc, availDesc,
|
sizeDesc, freeDesc, availDesc,
|
||||||
filesDesc, filesFreeDesc, roDesc *prometheus.Desc
|
filesDesc, filesFreeDesc, roDesc *prometheus.Desc
|
||||||
|
devErrors *prometheus.CounterVec
|
||||||
}
|
}
|
||||||
|
|
||||||
type filesystemStats struct {
|
type filesystemStats struct {
|
||||||
|
@ -102,6 +103,11 @@ func NewFilesystemCollector() (Collector, error) {
|
||||||
filesystemLabelNames, nil,
|
filesystemLabelNames, nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
devErrors := prometheus.NewCounterVec(prometheus.CounterOpts{
|
||||||
|
Name: prometheus.BuildFQName(Namespace, subsystem, "device_errors_total"),
|
||||||
|
Help: "Total number of errors occurred when getting stats for device",
|
||||||
|
}, filesystemLabelNames)
|
||||||
|
|
||||||
return &filesystemCollector{
|
return &filesystemCollector{
|
||||||
ignoredMountPointsPattern: mountPointPattern,
|
ignoredMountPointsPattern: mountPointPattern,
|
||||||
ignoredFSTypesPattern: filesystemsTypesPattern,
|
ignoredFSTypesPattern: filesystemsTypesPattern,
|
||||||
|
@ -111,6 +117,7 @@ func NewFilesystemCollector() (Collector, error) {
|
||||||
filesDesc: filesDesc,
|
filesDesc: filesDesc,
|
||||||
filesFreeDesc: filesFreeDesc,
|
filesFreeDesc: filesFreeDesc,
|
||||||
roDesc: roDesc,
|
roDesc: roDesc,
|
||||||
|
devErrors: devErrors,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -145,5 +152,6 @@ func (c *filesystemCollector) Update(ch chan<- prometheus.Metric) (err error) {
|
||||||
s.ro, s.labelValues...,
|
s.ro, s.labelValues...,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
c.devErrors.Collect(ch)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,9 +52,11 @@ func (c *filesystemCollector) GetStats() (stats []filesystemStats, err error) {
|
||||||
log.Debugf("Ignoring fs type: %s", mpd.fsType)
|
log.Debugf("Ignoring fs type: %s", mpd.fsType)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
labelValues := []string{mpd.device, mpd.mountPoint, mpd.fsType}
|
||||||
buf := new(syscall.Statfs_t)
|
buf := new(syscall.Statfs_t)
|
||||||
err := syscall.Statfs(mpd.mountPoint, buf)
|
err := syscall.Statfs(mpd.mountPoint, buf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
c.devErrors.WithLabelValues(labelValues...).Inc()
|
||||||
log.Debugf("Statfs on %s returned %s",
|
log.Debugf("Statfs on %s returned %s",
|
||||||
mpd.mountPoint, err)
|
mpd.mountPoint, err)
|
||||||
continue
|
continue
|
||||||
|
@ -65,7 +67,6 @@ func (c *filesystemCollector) GetStats() (stats []filesystemStats, err error) {
|
||||||
ro = 1
|
ro = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
labelValues := []string{mpd.device, mpd.mountPoint, mpd.fsType}
|
|
||||||
stats = append(stats, filesystemStats{
|
stats = append(stats, filesystemStats{
|
||||||
labelValues: labelValues,
|
labelValues: labelValues,
|
||||||
size: float64(buf.Blocks) * float64(buf.Bsize),
|
size: float64(buf.Blocks) * float64(buf.Bsize),
|
||||||
|
|
Loading…
Reference in a new issue