From 9c2bca2c32d833199d46d080246fa7cb65c61695 Mon Sep 17 00:00:00 2001 From: Newnius Date: Mon, 29 Apr 2019 20:57:32 +0800 Subject: [PATCH] update interface --- src/resource_pool.go | 28 ++++++++++++++-------------- src/util.go | 18 +++++++++++++++--- 2 files changed, 29 insertions(+), 17 deletions(-) diff --git a/src/resource_pool.go b/src/resource_pool.go index 40ad7c4..dccb8eb 100644 --- a/src/resource_pool.go +++ b/src/resource_pool.go @@ -3,21 +3,21 @@ package main import ( "sync" "time" - "strconv" - "fmt" ) type ResourcePool struct { mu sync.Mutex nodes map[string]NodeStatus - history []map[string]string + history []PoolStatus } func (pool *ResourcePool) start() { go func() { + /* waiting for data */ + time.Sleep(time.Second * 30) for { - summary := map[string]string{} + summary := PoolStatus{} UtilCPU := 0.0 TotalCPU := 0 @@ -41,19 +41,19 @@ func (pool *ResourcePool) start() { AvailableMemGPU += GPU.MemoryFree } } - summary["ts"] = time.Now().Format("2006-01-02 15:04:05") - summary["cpu_util"] = fmt.Sprintf("%.2f", UtilCPU/(float64(len(pool.nodes))+0.001)) - summary["cpu_total"] = strconv.Itoa(TotalCPU) - summary["mem_total"] = strconv.Itoa(TotalMem) - summary["mem_available"] = strconv.Itoa(AvailableMem) - summary["gpu_total"] = strconv.Itoa(TotalGPU) + summary.TimeStamp = time.Now().Format("2006-01-02 15:04:05") + summary.UtilCPU = UtilCPU / (float64(len(pool.nodes)) + 0.001) + summary.TotalCPU = TotalCPU + summary.TotalMem = TotalMem + summary.AvailableMem = AvailableMem + summary.TotalGPU = TotalGPU if TotalGPU == 0 { - summary["gpu_util"] = "0" + summary.UtilGPU = 0.0 } else { - summary["gpu_util"] = fmt.Sprintf("%2d", UtilGPU/TotalGPU) + summary.UtilGPU = UtilGPU / TotalGPU } - summary["gpu_mem_total"] = strconv.Itoa(TotalMemGPU) - summary["gpu_mem_available"] = strconv.Itoa(AvailableMemGPU) + summary.TotalMemGPU = TotalMemGPU + summary.AvailableMemGPU = AvailableMemGPU pool.history = append(pool.history, summary) diff --git a/src/util.go b/src/util.go index eb348f5..5d55b4c 100644 --- a/src/util.go +++ b/src/util.go @@ -16,15 +16,27 @@ const ( Finished = 4 ) +type PoolStatus struct { + TimeStamp string `json:"ts"` + UtilCPU float64 `json:"cpu_util"` + TotalCPU int `json:"cpu_total"` + TotalMem int `json:"mem_total"` + AvailableMem int `json:"mem_available"` + TotalGPU int `json:"TotalGPU"` + UtilGPU int `json:"gpu_util"` + TotalMemGPU int `json:"gpu_mem_total"` + AvailableMemGPU int `json:"gpu_mem_available"` +} + type MsgSubmit struct { Code int `json:"code"` Error string `json:"error"` } type MsgPoolStatusHistory struct { - Code int `json:"code"` - Error string `json:"error"` - Data []map[string]string `json:"data"` + Code int `json:"code"` + Error string `json:"error"` + Data []PoolStatus `json:"data"` } type MsgStop struct {