mirror of
https://github.com/Buriburizaem0n/nezha_domains.git
synced 2026-09-20 10:10:13 +00:00
feat(agentcompat): add SQLite hold scoped attribution
Co-authored-by: naiba/CloudCode <hi+cloudcode@nai.ba>
This commit is contained in:
@@ -11,7 +11,6 @@ import (
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/patrickmn/go-cache"
|
||||
"gorm.io/driver/sqlite"
|
||||
"gorm.io/gorm"
|
||||
"sigs.k8s.io/yaml"
|
||||
|
||||
@@ -81,7 +80,7 @@ func InitFrontendTemplates() error {
|
||||
// InitDBFromPath 从给出的文件路径中加载数据库
|
||||
func InitDBFromPath(path string) error {
|
||||
var err error
|
||||
DB, err = gorm.Open(sqlite.Open(path), &gorm.Config{
|
||||
DB, err = gorm.Open(openSQLiteDialector(path), &gorm.Config{
|
||||
CreateBatchSize: 200,
|
||||
})
|
||||
if err != nil {
|
||||
@@ -126,16 +125,15 @@ func RecordTransferHourlyUsage(servers ...*model.Server) {
|
||||
}
|
||||
|
||||
for server := range slist {
|
||||
_, _, deltaIn, deltaOut := server.TransferDeltaAndAdvance()
|
||||
tx := model.Transfer{
|
||||
ServerID: server.ID,
|
||||
In: utils.SubUintChecked(server.State.NetInTransfer, server.PrevTransferInSnapshot),
|
||||
Out: utils.SubUintChecked(server.State.NetOutTransfer, server.PrevTransferOutSnapshot),
|
||||
In: deltaIn,
|
||||
Out: deltaOut,
|
||||
}
|
||||
if tx.In == 0 && tx.Out == 0 {
|
||||
continue
|
||||
}
|
||||
server.PrevTransferInSnapshot = server.State.NetInTransfer
|
||||
server.PrevTransferOutSnapshot = server.State.NetOutTransfer
|
||||
tx.CreatedAt = nowTrimSeconds
|
||||
txs = append(txs, tx)
|
||||
}
|
||||
@@ -146,6 +144,13 @@ func RecordTransferHourlyUsage(servers ...*model.Server) {
|
||||
log.Printf("NEZHA>> Saved traffic metrics to database. Affected %d row(s), Error: %v", len(txs), DB.Create(txs).Error)
|
||||
}
|
||||
|
||||
func PersistTransfer(transfer model.Transfer) error {
|
||||
if transfer.In == 0 && transfer.Out == 0 {
|
||||
return nil
|
||||
}
|
||||
return DB.Create(&transfer).Error
|
||||
}
|
||||
|
||||
// CleanMonitorHistory 清理流量记录(TSDB 有自己的保留策略)
|
||||
func CleanMonitorHistory() {
|
||||
// 清理已被删除的服务器的流量记录
|
||||
|
||||
Reference in New Issue
Block a user