feat: Make handling of invalid devices configurable #266
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, whenever there are devices that are invalid, smartctl_exporter will log an error stating that the device can not be opened, refering to potential issues with missing IDENTIFY_DEVICE structures or low-power-mode-devices.
There are, however, also situations where (virtual) devices disappear from the host and are not properly cleaned up. Here,
open()
ing the device in smartctl fails with ENXIO, resulting in the error message "No such device or address" being returned. In this case, the error just clutters the log output for no reason, as there is no reasonable action that can be taken.This MR makes the experienced behavior for such cases configurable. One can either specify the newly added flag
--smartctl.exclude-enxio
to ensure that devices with such problems are simply silently ignored, or decide to ignore the flag and continue experiencing the current behavior.