mirror of
https://github.com/nezhahq/nezha.git
synced 2025-01-22 12:48:14 -05:00
149 lines
3.4 KiB
Go
149 lines
3.4 KiB
Go
package model
|
|
|
|
import (
|
|
pb "github.com/naiba/nezha/proto"
|
|
)
|
|
|
|
const (
|
|
_ = iota
|
|
|
|
MTReportHostState
|
|
)
|
|
|
|
type SensorTemperature struct {
|
|
Name string
|
|
Temperature float64
|
|
}
|
|
|
|
type HostState struct {
|
|
CPU float64
|
|
MemUsed uint64
|
|
SwapUsed uint64
|
|
DiskUsed uint64
|
|
NetInTransfer uint64
|
|
NetOutTransfer uint64
|
|
NetInSpeed uint64
|
|
NetOutSpeed uint64
|
|
Uptime uint64
|
|
Load1 float64
|
|
Load5 float64
|
|
Load15 float64
|
|
TcpConnCount uint64
|
|
UdpConnCount uint64
|
|
ProcessCount uint64
|
|
Temperatures []SensorTemperature
|
|
GPU float64
|
|
}
|
|
|
|
func (s *HostState) PB() *pb.State {
|
|
var ts []*pb.State_SensorTemperature
|
|
for _, t := range s.Temperatures {
|
|
ts = append(ts, &pb.State_SensorTemperature{
|
|
Name: t.Name,
|
|
Temperature: t.Temperature,
|
|
})
|
|
}
|
|
|
|
return &pb.State{
|
|
Cpu: s.CPU,
|
|
MemUsed: s.MemUsed,
|
|
SwapUsed: s.SwapUsed,
|
|
DiskUsed: s.DiskUsed,
|
|
NetInTransfer: s.NetInTransfer,
|
|
NetOutTransfer: s.NetOutTransfer,
|
|
NetInSpeed: s.NetInSpeed,
|
|
NetOutSpeed: s.NetOutSpeed,
|
|
Uptime: s.Uptime,
|
|
Load1: s.Load1,
|
|
Load5: s.Load5,
|
|
Load15: s.Load15,
|
|
TcpConnCount: s.TcpConnCount,
|
|
UdpConnCount: s.UdpConnCount,
|
|
ProcessCount: s.ProcessCount,
|
|
Temperatures: ts,
|
|
Gpu: s.GPU,
|
|
}
|
|
}
|
|
|
|
func PB2State(s *pb.State) HostState {
|
|
var ts []SensorTemperature
|
|
for _, t := range s.GetTemperatures() {
|
|
ts = append(ts, SensorTemperature{
|
|
Name: t.GetName(),
|
|
Temperature: t.GetTemperature(),
|
|
})
|
|
}
|
|
|
|
return HostState{
|
|
CPU: s.GetCpu(),
|
|
MemUsed: s.GetMemUsed(),
|
|
SwapUsed: s.GetSwapUsed(),
|
|
DiskUsed: s.GetDiskUsed(),
|
|
NetInTransfer: s.GetNetInTransfer(),
|
|
NetOutTransfer: s.GetNetOutTransfer(),
|
|
NetInSpeed: s.GetNetInSpeed(),
|
|
NetOutSpeed: s.GetNetOutSpeed(),
|
|
Uptime: s.GetUptime(),
|
|
Load1: s.GetLoad1(),
|
|
Load5: s.GetLoad5(),
|
|
Load15: s.GetLoad15(),
|
|
TcpConnCount: s.GetTcpConnCount(),
|
|
UdpConnCount: s.GetUdpConnCount(),
|
|
ProcessCount: s.GetProcessCount(),
|
|
Temperatures: ts,
|
|
GPU: s.GetGpu(),
|
|
}
|
|
}
|
|
|
|
type Host struct {
|
|
Platform string
|
|
PlatformVersion string
|
|
CPU []string
|
|
MemTotal uint64
|
|
DiskTotal uint64
|
|
SwapTotal uint64
|
|
Arch string
|
|
Virtualization string
|
|
BootTime uint64
|
|
IP string `json:"-"`
|
|
CountryCode string
|
|
Version string
|
|
GPU []string
|
|
}
|
|
|
|
func (h *Host) PB() *pb.Host {
|
|
return &pb.Host{
|
|
Platform: h.Platform,
|
|
PlatformVersion: h.PlatformVersion,
|
|
Cpu: h.CPU,
|
|
MemTotal: h.MemTotal,
|
|
DiskTotal: h.DiskTotal,
|
|
SwapTotal: h.SwapTotal,
|
|
Arch: h.Arch,
|
|
Virtualization: h.Virtualization,
|
|
BootTime: h.BootTime,
|
|
Ip: h.IP,
|
|
CountryCode: h.CountryCode,
|
|
Version: h.Version,
|
|
Gpu: h.GPU,
|
|
}
|
|
}
|
|
|
|
func PB2Host(h *pb.Host) Host {
|
|
return Host{
|
|
Platform: h.GetPlatform(),
|
|
PlatformVersion: h.GetPlatformVersion(),
|
|
CPU: h.GetCpu(),
|
|
MemTotal: h.GetMemTotal(),
|
|
DiskTotal: h.GetDiskTotal(),
|
|
SwapTotal: h.GetSwapTotal(),
|
|
Arch: h.GetArch(),
|
|
Virtualization: h.GetVirtualization(),
|
|
BootTime: h.GetBootTime(),
|
|
IP: h.GetIp(),
|
|
CountryCode: h.GetCountryCode(),
|
|
Version: h.GetVersion(),
|
|
GPU: h.GetGpu(),
|
|
}
|
|
}
|