diff --git a/collector/mountstats_linux.go b/collector/mountstats_linux.go index 03f1a9b6..3be9f593 100644 --- a/collector/mountstats_linux.go +++ b/collector/mountstats_linux.go @@ -52,6 +52,7 @@ type mountStatsCollector struct { NFSOperationsQueueTimeSecondsTotal *prometheus.Desc NFSOperationsResponseTimeSecondsTotal *prometheus.Desc NFSOperationsRequestTimeSecondsTotal *prometheus.Desc + NFSOperationsErrorsTotal *prometheus.Desc // Transport statistics NFSTransportBindTotal *prometheus.Desc @@ -321,6 +322,13 @@ func NewMountStatsCollector(logger *slog.Logger) (Collector, error) { nil, ), + NFSOperationsErrorsTotal: prometheus.NewDesc( + prometheus.BuildFQName(namespace, subsystem, "operations_errors_total"), + "Number of errors for a given operation", + opLabels, + nil, + ), + NFSEventInodeRevalidateTotal: prometheus.NewDesc( prometheus.BuildFQName(namespace, subsystem, "event_inode_revalidate_total"), "Number of times cached inode attributes are re-validated from the server.", @@ -747,6 +755,13 @@ func (c *mountStatsCollector) updateNFSStats(ch chan<- prometheus.Metric, s *pro float64(op.CumulativeTotalRequestMilliseconds%float64Mantissa)/1000.0, opLabelValues..., ) + + ch <- prometheus.MustNewConstMetric( + c.NFSOperationsErrorsTotal, + prometheus.CounterValue, + float64(op.Errors%float64Mantissa), + opLabelValues..., + ) } ch <- prometheus.MustNewConstMetric(