diff --git a/main.go b/main.go index 89cac25..0048098 100644 --- a/main.go +++ b/main.go @@ -59,6 +59,11 @@ func (i *SMARTctlManagerCollector) Collect(ch chan<- prometheus.Metric) { smart.Collect() } } + ch <- prometheus.MustNewConstMetric( + metricDeviceCount, + prometheus.GaugeValue, + float64(len(i.Devices)), + ) info.Collect() i.mutex.Unlock() } @@ -141,11 +146,7 @@ func main() { } else { level.Info(logger).Log("msg", "No devices specified, trying to load them automatically") devices = scanDevices(logger) - } - - if len(devices) == 0 { - level.Error(logger).Log("msg", "No devices found") - os.Exit(1) + level.Info(logger).Log("msg", "Number of devices found", "count", len(devices)) } collector := SMARTctlManagerCollector{ diff --git a/metrics.go b/metrics.go index 182271f..9e5957f 100644 --- a/metrics.go +++ b/metrics.go @@ -47,6 +47,12 @@ var ( }, nil, ) + metricDeviceCount = prometheus.NewDesc( + "smartctl_device_count", + "Number of devices configured or dynamically discovered", + []string{}, + nil, + ) metricDeviceCapacityBlocks = prometheus.NewDesc( "smartctl_device_capacity_blocks", "Device capacity in blocks",