Data provided by SMART is useful to detect failures on disks or to prevent incidences caused by disk degradation. It'd be nice to add a system metricset that collects this information.
SMART data is usually collected using smartmontools, we may need to find a golang-based alternative for that.
I found this library that could potentially help with the implementation https://github.com/dswarbrick/smart
Other option could be to parse smartd logs with filebeat.
I would like to work on this
@agathver great! I don't think anyone is working on this yet, so you are welcome to start with this :slightly_smiling_face:
What is the approach you want to try?
Thanks!
@jsoriano I feel the smartmontools approach is more robust and mature. The Go library will be easier but has a warning of being experimental.
We already have other modules which require additional software, so this should not be an issue IMO.
How would you use smartmontools? I think we don't have other modules executing commands at the moment and I'd say we don't want to make an exception here. If we can use it as library, query a daemon, or parse their logs I think we'd be fine.
I agree in any case that using smartmontools if possible would be preferable to other options.
My initial idea was to parse the output of smartctl. The other alternative is to parse logs by smartd which goes into syslog.
Any news here? Is there a way to pull SMART data from Windows devices?
This sounds fun to pick up. I need to look into how smartctl works, but if it's just doing ioctl calls to some disk device it probably won't be that hard to re-implement.
@fearful-symmetry You can take a look at WMI as well, it provides SMART data as well
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
kind bump :) I'd be quite interested in this feature
Bump here too!!
Gonna keep this open and see if we can at least keep it on our radar.
Most helpful comment
I found this library that could potentially help with the implementation https://github.com/dswarbrick/smart