Files
x_admin/server/controller/admin_ctl/monitorController/monitor.go
2025-06-25 01:31:34 +08:00

49 lines
1.2 KiB
Go

package monitorController
import (
"strings"
"x_admin/core/response"
"x_admin/middleware"
"x_admin/util"
"github.com/gin-gonic/gin"
)
func RegisterRoute(rg *gin.RouterGroup) {
handle := monitorHandler{}
rg = rg.Group("/monitor", middleware.TokenAuth())
rg.GET("/cache", middleware.RecordLog("缓存监控"), handle.cache)
rg.GET("/server", middleware.RecordLog("服务监控"), handle.server)
}
type monitorHandler struct{}
// cache 缓存监控
func (mh monitorHandler) cache(c *gin.Context) {
cmdStatsMap := util.RedisUtil.Info("commandstats")
var stats []map[string]string
for k, v := range cmdStatsMap {
stats = append(stats, map[string]string{
"name": strings.Split(k, "_")[1],
"value": v[strings.Index(v, "=")+1 : strings.Index(v, ",")],
})
}
response.OkWithData(c, map[string]interface{}{
"info": util.RedisUtil.Info(),
"commandStats": stats,
"dbSize": util.RedisUtil.DBSize(),
})
}
// server 服务监控
func (mh monitorHandler) server(c *gin.Context) {
response.OkWithData(c, map[string]interface{}{
"cpu": util.ServerUtil.GetCpuInfo(),
"mem": util.ServerUtil.GetMemInfo(),
"sys": util.ServerUtil.GetSysInfo(),
"disk": util.ServerUtil.GetDiskInfo(),
"go": util.ServerUtil.GetGoInfo(),
})
}