Skip to content

Commit

Permalink
fix: allow configuring powermode check to work better with SSDs
Browse files Browse the repository at this point in the history
fixes prometheus-community#91

Signed-off-by: Robin Björklin <[email protected]>
  • Loading branch information
rbjorklin committed Sep 9, 2024
1 parent 2cc2249 commit b442301
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 1 deletion.
3 changes: 3 additions & 0 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,9 @@ var (
smartctlFakeData = kingpin.Flag("smartctl.fake-data",
"The device to monitor (repeatable)",
).Default("false").Hidden().Bool()
smartctlPowerModeCheck = kingpin.Flag("smartctl.powermode-check",
"Whether or not to check powermode before fetching data",
).Default("standby").String()
)

// scanDevices uses smartctl to gather the list of available devices.
Expand Down
2 changes: 1 addition & 1 deletion readjson.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ func readFakeSMARTctl(logger log.Logger, device Device) gjson.Result {
// Get json from smartctl and parse it
func readSMARTctl(logger log.Logger, device Device) (gjson.Result, bool) {
start := time.Now()
out, err := exec.Command(*smartctlPath, "--json", "--info", "--health", "--attributes", "--tolerance=verypermissive", "--nocheck=standby", "--format=brief", "--log=error", "--device="+device.Type, device.Name).Output()
out, err := exec.Command(*smartctlPath, "--json", "--info", "--health", "--attributes", "--tolerance=verypermissive", "--nocheck="+*smartctlPowerModeCheck, "--format=brief", "--log=error", "--device="+device.Type, device.Name).Output()
if err != nil {
level.Warn(logger).Log("msg", "S.M.A.R.T. output reading", "err", err, "device", device.Info_Name)
}
Expand Down

0 comments on commit b442301

Please sign in to comment.