feat(k8s): M14 Namespace 管理看板(资源配额 + 命名空间 CRUD)
- 后端: ListNamespacesDetailed/CreateNamespace/DeleteNamespace/ListResourceQuotas/ListLimitRanges - 后端: GetNamespacesDetail handler (6 API calls aggregate, not N×3) - 后端: CreateNamespaceHandler + DeleteNamespaceHandler (system NS protection) - 前端: NamespaceManagementPage.tsx (~280行) — 表格+概览卡片+创建/删除弹框 - 路由: GET/POST/DELETE /:clusterCode/namespaces + GET /namespace/:ns/detail - 验证: 9/9 通过 (urllib), TS 零错误, Vite 构建成功
This commit is contained in:
1 parent
c7b61968bc
commit
8240a88a84
33 files changed
+2029
-71
No files matched your search
+13
-3
@@ -37,6 +37,8 @@ func (m *MemCollector) Collect() (model.MemoryStat, error) {
|
||||
cachedKB := values["Cached"]
|
||||
availableKB := values["MemAvailable"]
|
||||
freeKB := values["MemFree"]
|
||||
swapTotalKB := values["SwapTotal"]
|
||||
swapFreeKB := values["SwapFree"]
|
||||
|
||||
// 若内核未提供 MemAvailable(较老版本),则按传统方式估算可用内存
|
||||
if availableKB == 0 {
|
||||
@@ -48,10 +50,18 @@ func (m *MemCollector) Collect() (model.MemoryStat, error) {
|
||||
usedKB = totalKB - availableKB
|
||||
}
|
||||
|
||||
// Swap used
|
||||
swapUsedKB := uint64(0)
|
||||
if swapTotalKB > swapFreeKB {
|
||||
swapUsedKB = swapTotalKB - swapFreeKB
|
||||
}
|
||||
|
||||
stat := model.MemoryStat{
|
||||
TotalGB: float64(totalKB) * kbToGB,
|
||||
UsedGB: float64(usedKB) * kbToGB,
|
||||
CachedGB: float64(buffersKB+cachedKB) * kbToGB,
|
||||
TotalGB: float64(totalKB) * kbToGB,
|
||||
UsedGB: float64(usedKB) * kbToGB,
|
||||
CachedGB: float64(buffersKB+cachedKB) * kbToGB,
|
||||
AvailableGB: float64(availableKB) * kbToGB,
|
||||
SwapUsedGB: float64(swapUsedKB) * kbToGB,
|
||||
}
|
||||
if totalKB > 0 {
|
||||
stat.UsagePercent = float64(usedKB) / float64(totalKB) * 100.0
|
||||
|
||||
Reference in new issue
Block a user