package monitor import ( "os" "time" "github.com/yusing/godoxy/internal/types" ) type FileServerHealthMonitor struct { *monitor path string } func NewFileServerHealthMonitor(config types.HealthCheckConfig, path string) *FileServerHealthMonitor { mon := &FileServerHealthMonitor{path: path} mon.monitor = newMonitor(nil, config, mon.CheckHealth) return mon } func (s *FileServerHealthMonitor) CheckHealth() (types.HealthCheckResult, error) { start := time.Now() _, err := os.Stat(s.path) if err != nil { if os.IsNotExist(err) { return types.HealthCheckResult{ Detail: err.Error(), }, nil } return types.HealthCheckResult{}, err } return types.HealthCheckResult{ Healthy: true, Latency: time.Since(start), }, nil }