Skip to content

Commit 2b604f1

Browse files
authored
fix(wal): Move WAL disk check to platform-specific code (#19619)
1 parent 91e11fc commit 2b604f1

File tree

3 files changed

+41
-17
lines changed

3 files changed

+41
-17
lines changed

pkg/ingester/wal.go

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"flag"
55
"fmt"
66
"sync"
7-
"syscall"
87
"time"
98

109
"go.uber.org/atomic"
@@ -170,22 +169,6 @@ func (w *walWrapper) checkpointWriter() *WALCheckpointWriter {
170169
}
171170
}
172171

173-
// checkDiskUsage returns the disk usage percentage (0.0 to 1.0) for the WAL directory.
174-
func (w *walWrapper) checkDiskUsage() (float64, error) {
175-
var stat syscall.Statfs_t
176-
if err := syscall.Statfs(w.cfg.Dir, &stat); err != nil {
177-
return 0, err
178-
}
179-
180-
// Calculate usage percentage
181-
total := stat.Blocks * uint64(stat.Bsize)
182-
free := stat.Bfree * uint64(stat.Bsize)
183-
used := total - free
184-
usagePercent := float64(used) / float64(total)
185-
186-
return usagePercent, nil
187-
}
188-
189172
func (w *walWrapper) run() {
190173
level.Info(util_log.Logger).Log("msg", "started", "component", "wal")
191174
defer w.wait.Done()

pkg/ingester/wal_unix.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
//go:build !windows
2+
3+
package ingester
4+
5+
import (
6+
"syscall"
7+
)
8+
9+
// checkDiskUsage returns the disk usage percentage (0.0 to 1.0) for the WAL directory.
10+
func (w *walWrapper) checkDiskUsage() (float64, error) {
11+
var stat syscall.Statfs_t
12+
if err := syscall.Statfs(w.cfg.Dir, &stat); err != nil {
13+
return 0, err
14+
}
15+
16+
// Calculate usage percentage
17+
total := stat.Blocks * uint64(stat.Bsize)
18+
free := stat.Bfree * uint64(stat.Bsize)
19+
used := total - free
20+
usagePercent := float64(used) / float64(total)
21+
22+
return usagePercent, nil
23+
}

pkg/ingester/wal_windows.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
//go:build windows
2+
3+
package ingester
4+
5+
import (
6+
"syscall"
7+
)
8+
9+
var (
10+
kernel32 = syscall.NewLazyDLL("kernel32.dll")
11+
procGetDiskFreeSpaceEx = kernel32.NewProc("GetDiskFreeSpaceExW")
12+
)
13+
14+
// checkDiskUsage returns the disk usage percentage (0.0 to 1.0) for the WAL directory.
15+
func (w *walWrapper) checkDiskUsage() (float64, error) {
16+
// Disable this for Windows for now
17+
return 0.0, nil
18+
}

0 commit comments

Comments
 (0)