in internal/disk_stats/disk_stats.go [30:54]
func DiskUsage(path string) (DiskStats, error) {
fs := unix.Statfs_t{}
err := unix.Statfs(path, &fs)
if err != nil {
return DiskStats{}, err
}
all := fs.Blocks * uint64(fs.Bsize) //nolint:gosec
free := fs.Bfree * uint64(fs.Bsize) //nolint:gosec
used := all - free
indexed, err := getIndexSize(path)
if indexed < 0 || err != nil {
slog.Error("can not get the index size", "path", path, "error", err)
indexed = -1
}
diskStats := DiskStats{
All: all,
Free: free,
Indexed: indexed,
Used: used,
}
return diskStats, nil
}