mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2025-11-03 23:20:25 +08:00
节点看板增加缓存目录用量
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
|||||||
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared"
|
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared"
|
||||||
"github.com/TeaOSLab/EdgeNode/internal/remotelogs"
|
"github.com/TeaOSLab/EdgeNode/internal/remotelogs"
|
||||||
"github.com/iwind/TeaGo/lists"
|
"github.com/iwind/TeaGo/lists"
|
||||||
|
"github.com/iwind/TeaGo/types"
|
||||||
"strconv"
|
"strconv"
|
||||||
"sync"
|
"sync"
|
||||||
)
|
)
|
||||||
@@ -162,3 +163,25 @@ func (this *Manager) TotalMemorySize() int64 {
|
|||||||
}
|
}
|
||||||
return total
|
return total
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FindAllCachePaths 所有缓存路径
|
||||||
|
func (this *Manager) FindAllCachePaths() []string {
|
||||||
|
this.locker.Lock()
|
||||||
|
defer this.locker.Unlock()
|
||||||
|
|
||||||
|
var result = []string{}
|
||||||
|
for _, policy := range this.policyMap {
|
||||||
|
if policy.Type == serverconfigs.CachePolicyStorageFile {
|
||||||
|
if policy.Options != nil {
|
||||||
|
dir, ok := policy.Options["dir"]
|
||||||
|
if ok {
|
||||||
|
var dirString = types.String(dir)
|
||||||
|
if len(dirString) > 0 {
|
||||||
|
result = append(result, dirString)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import (
|
|||||||
"github.com/iwind/TeaGo/maps"
|
"github.com/iwind/TeaGo/maps"
|
||||||
"github.com/shirou/gopsutil/cpu"
|
"github.com/shirou/gopsutil/cpu"
|
||||||
"github.com/shirou/gopsutil/disk"
|
"github.com/shirou/gopsutil/disk"
|
||||||
|
"golang.org/x/sys/unix"
|
||||||
"os"
|
"os"
|
||||||
"runtime"
|
"runtime"
|
||||||
"strings"
|
"strings"
|
||||||
@@ -82,6 +83,7 @@ func (this *NodeStatusExecutor) update() {
|
|||||||
this.updateMem(status)
|
this.updateMem(status)
|
||||||
this.updateLoad(status)
|
this.updateLoad(status)
|
||||||
this.updateDisk(status)
|
this.updateDisk(status)
|
||||||
|
this.updateCacheSpace(status)
|
||||||
status.UpdatedAt = time.Now().Unix()
|
status.UpdatedAt = time.Now().Unix()
|
||||||
|
|
||||||
// 发送数据
|
// 发送数据
|
||||||
@@ -213,3 +215,25 @@ func (this *NodeStatusExecutor) updateDisk(status *nodeconfigs.NodeStatus) {
|
|||||||
"maxUsage": status.DiskMaxUsage,
|
"maxUsage": status.DiskMaxUsage,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 缓存空间
|
||||||
|
func (this *NodeStatusExecutor) updateCacheSpace(status *nodeconfigs.NodeStatus) {
|
||||||
|
var result = []maps.Map{}
|
||||||
|
cachePaths := caches.SharedManager.FindAllCachePaths()
|
||||||
|
for _, path := range cachePaths {
|
||||||
|
var stat unix.Statfs_t
|
||||||
|
err := unix.Statfs(path, &stat)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
result = append(result, maps.Map{
|
||||||
|
"path": path,
|
||||||
|
"total": stat.Blocks * uint64(stat.Bsize),
|
||||||
|
"avail": stat.Bavail * uint64(stat.Bsize),
|
||||||
|
"used": (stat.Blocks - stat.Bavail) * uint64(stat.Bsize),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
monitor.SharedValueQueue.Add(nodeconfigs.NodeValueItemCacheDir, maps.Map{
|
||||||
|
"dirs": result,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user