From 11ea134be3ce8aca9c1bf6af4610e3bb4e09eca7 Mon Sep 17 00:00:00 2001 From: Sun <95302870@qq.com> Date: Tue, 2 Jan 2024 23:14:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=B3=BB=E7=BB=9F=E7=9B=91?= =?UTF-8?q?=E6=8E=A7=E7=9A=84=E5=9F=BA=E7=A1=80api=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- service/api/api_v1/system/A_ENTER.go | 1 + service/api/api_v1/system/monitor.go | 18 ++++++++++ service/global/{monitoer.go => monitor.go} | 2 -- .../initialize/systemMonitor/systemMonitor.go | 5 ++- service/lib/monitor/monitor.go | 34 +++++++++---------- service/router/system/A_ENTER.go | 1 + service/router/system/monitor.go | 19 +++++++++++ 7 files changed, 60 insertions(+), 20 deletions(-) create mode 100644 service/api/api_v1/system/monitor.go rename service/global/{monitoer.go => monitor.go} (83%) create mode 100644 service/router/system/monitor.go diff --git a/service/api/api_v1/system/A_ENTER.go b/service/api/api_v1/system/A_ENTER.go index f1b8636..490e69e 100644 --- a/service/api/api_v1/system/A_ENTER.go +++ b/service/api/api_v1/system/A_ENTER.go @@ -9,4 +9,5 @@ type ApiSystem struct { RegisterApi RegisterApi NoticeApi NoticeApi ModuleConfigApi ModuleConfigApi + MonitorApi MonitorApi } diff --git a/service/api/api_v1/system/monitor.go b/service/api/api_v1/system/monitor.go new file mode 100644 index 0000000..e47308f --- /dev/null +++ b/service/api/api_v1/system/monitor.go @@ -0,0 +1,18 @@ +package system + +import ( + "sun-panel/api/api_v1/common/apiReturn" + "sun-panel/global" + + "github.com/gin-gonic/gin" +) + +type MonitorApi struct{} + +func (a *MonitorApi) GetAll(c *gin.Context) { + if value, ok := global.SystemMonitor.Get("value"); ok { + apiReturn.SuccessData(c, value) + return + } + apiReturn.Error(c, "failed") +} diff --git a/service/global/monitoer.go b/service/global/monitor.go similarity index 83% rename from service/global/monitoer.go rename to service/global/monitor.go index d35e431..a1f03f4 100644 --- a/service/global/monitoer.go +++ b/service/global/monitor.go @@ -7,6 +7,4 @@ type ModelSystemMonitor struct { DiskInfo []monitor.DiskInfo NetIOCountersInfo []monitor.NetIOCountersInfo MemoryInfo monitor.MemoryInfo - // NetIOCountersInfo monitor.NetIOCountersInfo - } diff --git a/service/initialize/systemMonitor/systemMonitor.go b/service/initialize/systemMonitor/systemMonitor.go index 43843fe..1b155f1 100644 --- a/service/initialize/systemMonitor/systemMonitor.go +++ b/service/initialize/systemMonitor/systemMonitor.go @@ -17,7 +17,10 @@ func Start(cacher cache.Cacher[global.ModelSystemMonitor], interval time.Duratio select { case <-ticker.C: go func() { - GetInfo() + monitorInfo := GetInfo() + // jsonByte, _ := json.Marshal(monitorInfo) + // fmt.Println("系统监控:", string(jsonByte)) + cacher.SetDefault("value", monitorInfo) }() } } diff --git a/service/lib/monitor/monitor.go b/service/lib/monitor/monitor.go index b7dff6f..7ab8419 100644 --- a/service/lib/monitor/monitor.go +++ b/service/lib/monitor/monitor.go @@ -10,29 +10,29 @@ import ( ) type CPUInfo struct { - CoreCount int32 - CPUNum int - Model string - Usages []float64 + CoreCount int32 `json:"coreCount"` + CPUNum int `json:"cpuNum"` + Model string `json:"model"` + Usages []float64 `json:"usages"` } type DiskInfo struct { - Mountpoint string - Total uint64 - Used uint64 - Free uint64 - UsedPercent float64 + Mountpoint string `json:"mountpoint"` + Total uint64 `json:"total"` + Used uint64 `json:"used"` + Free uint64 `json:"free"` + UsedPercent float64 `json:"usedPercent"` } type NetIOCountersInfo struct { - BytesSent uint64 - BytesRecv uint64 - Name string + BytesSent uint64 `json:"bytesSent"` + BytesRecv uint64 `json:"bytesRecv"` + Name string `json:"name"` } type MemoryInfo struct { - Total uint64 - Free uint64 + Total uint64 `json:"total"` + Free uint64 `json:"free"` } // 获取CPU信息 @@ -57,10 +57,10 @@ func GetMemoryInfo() (MemoryInfo, error) { // 获取内存信息 memInfo, err := mem.VirtualMemory() if err == nil { - return memoryInfo, err + memoryInfo.Free = memInfo.Free + memoryInfo.Total = memInfo.Total } - memoryInfo.Free = memInfo.Free - memoryInfo.Total = memInfo.Total + return memoryInfo, err } diff --git a/service/router/system/A_ENTER.go b/service/router/system/A_ENTER.go index 62e8b7c..c65dedf 100644 --- a/service/router/system/A_ENTER.go +++ b/service/router/system/A_ENTER.go @@ -11,4 +11,5 @@ func Init(routerGroup *gin.RouterGroup) { InitRegister(routerGroup) InitNoticeRouter(routerGroup) InitModuleConfigRouter(routerGroup) + InitMonitorRouter(routerGroup) } diff --git a/service/router/system/monitor.go b/service/router/system/monitor.go new file mode 100644 index 0000000..ced3291 --- /dev/null +++ b/service/router/system/monitor.go @@ -0,0 +1,19 @@ +package system + +import ( + "sun-panel/api/api_v1" + "sun-panel/api/api_v1/middleware" + + "github.com/gin-gonic/gin" +) + +func InitMonitorRouter(router *gin.RouterGroup) { + api := api_v1.ApiGroupApp.ApiSystem.MonitorApi + // r := router.Group("", middleware.LoginInterceptor) + + // 公开模式 + rPublic := router.Group("", middleware.PublicModeInterceptor) + { + rPublic.POST("/system/monitor/getAll", api.GetAll) + } +}