diff --git a/collector/pkg/collector/metrics.go b/collector/pkg/collector/metrics.go index 5d453dd..7ff4fc8 100644 --- a/collector/pkg/collector/metrics.go +++ b/collector/pkg/collector/metrics.go @@ -15,6 +15,7 @@ import ( "os" "os/exec" "strings" + "time" ) type MetricsCollector struct { @@ -90,8 +91,9 @@ func (mc *MetricsCollector) Run() error { //go mc.Collect(&wg, device.WWN, device.DeviceName, device.DeviceType) mc.Collect(device.WWN, device.DeviceName, device.DeviceType) - // TODO: we may need to sleep for between each call to smartctl -a - //time.Sleep(30 * time.Millisecond) + if mc.config.GetInt("commands.metrics_smartctl_wait") > 0 { + time.Sleep(time.Duration(mc.config.GetInt("commands.metrics_smartctl_wait")) * time.Millisecond) + } } //mc.logger.Infoln("Main: Waiting for workers to finish") diff --git a/collector/pkg/config/config.go b/collector/pkg/config/config.go index 45bb3b8..3e81880 100644 --- a/collector/pkg/config/config.go +++ b/collector/pkg/config/config.go @@ -47,6 +47,7 @@ func (c *configuration) Init() error { c.SetDefault("commands.metrics_scan_args", "--scan --json") c.SetDefault("commands.metrics_info_args", "--info --json") c.SetDefault("commands.metrics_smart_args", "--xall --json") + c.SetDefault("commands.metrics_smartctl_wait", 0) //c.SetDefault("collect.short.command", "-a -o on -S on") diff --git a/example.collector.yaml b/example.collector.yaml index d1fc9f1..0469610 100644 --- a/example.collector.yaml +++ b/example.collector.yaml @@ -81,6 +81,7 @@ devices: # metrics_scan_args: '--scan --json' # used to detect devices # metrics_info_args: '--info --json' # used to determine device unique ID & register device with Scrutiny # metrics_smart_args: '--xall --json' # used to retrieve smart data for each device. +# metrics_smartctl_wait: 0 # time to wait in seconds between each disk's check ########################################################################################################################