| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package admin
- import (
- "fmt"
- "net/http"
- "runtime"
- "github.com/bjdgyc/anylink/base"
- "github.com/bjdgyc/anylink/dbdata"
- "github.com/bjdgyc/anylink/pkg/utils"
- "github.com/bjdgyc/anylink/sessdata"
- "github.com/shirou/gopsutil/cpu"
- "github.com/shirou/gopsutil/disk"
- "github.com/shirou/gopsutil/host"
- "github.com/shirou/gopsutil/load"
- "github.com/shirou/gopsutil/mem"
- )
- func SetHome(w http.ResponseWriter, r *http.Request) {
- data := make(map[string]interface{})
- sess := sessdata.OnlineSess()
- data["counts"] = map[string]int{
- "online": len(sess),
- "user": dbdata.CountAll(&dbdata.User{}),
- "group": dbdata.CountAll(&dbdata.Group{}),
- "ip_map": dbdata.CountAll(&dbdata.IpMap{}),
- }
- RespSucess(w, data)
- }
- func SetSystem(w http.ResponseWriter, r *http.Request) {
- data := make(map[string]interface{})
- m, _ := mem.VirtualMemory()
- data["mem"] = map[string]interface{}{
- "total": utils.HumanByte(m.Total),
- "free": utils.HumanByte(m.Free),
- "percent": decimal(m.UsedPercent),
- }
- d, _ := disk.Usage("/")
- data["disk"] = map[string]interface{}{
- "total": utils.HumanByte(d.Total),
- "free": utils.HumanByte(d.Free),
- "percent": decimal(d.UsedPercent),
- }
- cc, _ := cpu.Counts(true)
- c, _ := cpu.Info()
- ci := c[0]
- cpuUsedPercent, _ := cpu.Percent(0, false)
- cup := cpuUsedPercent[0]
- if cup == 0 {
- cup = 1
- }
- data["cpu"] = map[string]interface{}{
- "core": cc,
- "modelName": ci.ModelName,
- "ghz": fmt.Sprintf("%.2f GHz", ci.Mhz/1000),
- "percent": decimal(cup),
- }
- hi, _ := host.Info()
- l, _ := load.Avg()
- data["sys"] = map[string]interface{}{
- "goOs": runtime.GOOS,
- "goArch": runtime.GOARCH,
- "goVersion": runtime.Version(),
- "goroutine": runtime.NumGoroutine(),
- "appVersion": "v" + base.APP_VER,
- "appCommitId": base.CommitId,
- "hostname": hi.Hostname,
- "platform": fmt.Sprintf("%v %v %v", hi.Platform, hi.PlatformFamily, hi.PlatformVersion),
- "kernel": hi.KernelVersion,
- "load": fmt.Sprint(l.Load1, l.Load5, l.Load15),
- }
- RespSucess(w, data)
- }
- func SetSoft(w http.ResponseWriter, r *http.Request) {
- data := base.ServerCfg2Slice()
- RespSucess(w, data)
- }
- func decimal(f float64) float64 {
- i := int(f * 100)
- return float64(i) / 100
- }
|