http-server-status/internal/pkg/checks/hdd.go

34 lines
619 B
Go

package checks
import (
"github.com/shirou/gopsutil/disk"
)
type HDDConfig struct {
MaxPercent int `yaml:"max_percent"`
}
type HDD struct {
Config HDDConfig
}
func (h HDD) Execute() (ok bool, data interface{}, err error) {
success := true
parts, _ := disk.Partitions(false)
usage := make(map[string]float64)
for _, p := range parts {
device := p.Mountpoint
s, _ := disk.Usage(device)
usage[device] = s.UsedPercent
if s.UsedPercent > float64(h.Config.MaxPercent) {
success = false
//return false, parts,nil
}
}
return success, usage,nil
}
func (h HDD) Name() string {
return "DiscSpace"
}