fix(tsdb): survive low disk space

This commit is contained in:
naiba committed 2026-09-13 01:15:18 +00:00
1 parent 1155c17573
commit 06d387779d
6 files changed
+341 -14

No files matched your search

+15 -2
View File
@@ -1,6 +1,7 @@
package singleton
import (
"errors"
"log"
"time"
@@ -10,6 +11,8 @@ import (
var TSDBShared *tsdb.TSDB
var openTSDB = tsdb.Open
func InitTSDB() error {
config := &tsdb.Config{
RetentionDays: 30,
@@ -44,11 +47,21 @@ func InitTSDB() error {
return nil
}
var err error
TSDBShared, err = tsdb.Open(config)
TSDBShared = nil
db, err := openTSDB(config)
if err != nil {
if errors.Is(err, tsdb.ErrDiskFull) {
log.Printf("NEZHA>> Warning: TSDB is unavailable because its disk is full; dashboard and alerts will continue without TSDB writes: %v", err)
if DB != nil {
if migrateErr := DB.AutoMigrate(model.ServiceHistory{}); migrateErr != nil {
log.Printf("NEZHA>> Warning: failed to prepare SQLite service history fallback: %v", migrateErr)
}
}
return nil
}
return err
}
TSDBShared = db
log.Println("NEZHA>> TSDB initialized successfully")