sysinfo.go 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package protocol
  2. type CpuInfo struct {
  3. Cpus int `json:"cpus"`
  4. Cores int `json:"cores"`
  5. ModelName string `json:"model"`
  6. Percent float64 `json:"percent"` //状态信息
  7. }
  8. type MemInfo struct {
  9. Total uint64 `json:"total"`
  10. Available uint64 `json:"available"`
  11. Used uint64 `json:"used"`
  12. Percent float64 `json:"percent"`
  13. }
  14. type DiskInfo struct {
  15. Device string `json:"device"`
  16. Mountpoint string `json:"mountpoint"`
  17. Fstype string `json:"fstype"`
  18. Path string `json:"path"`
  19. Total uint64 `json:"total"`
  20. Free uint64 `json:"free"`
  21. Used uint64 `json:"used"`
  22. Percent float64 `json:"percent"`
  23. }
  24. type ProcessInfo struct {
  25. Pid int32 `json:"pid"`
  26. Name string `json:"name"`
  27. Cpu float64 `json:"cpu"`
  28. Mem float64 `json:"mem"`
  29. }
  30. type LcInterfaces struct {
  31. Name string `json:"name"` // e.g., "en0", "lo0", "eth0.100"
  32. HardwareAddr string `json:"mac"`
  33. Addr string `json:"addr"`
  34. Sent uint64 `json:"sent"` // number of bytes sent
  35. Recv uint64 `json:"recv"` // number of bytes received
  36. PacketsSent uint64 `json:"packetssent"` // number of packets sent
  37. PacketsRecv uint64 `json:"packetsrecv"` // number of packets received
  38. }
  39. type ConnectionInfo struct {
  40. Type uint32 `json:"type"`
  41. Laddr string `json:"localaddr"` //ip:port
  42. Raddr string `json:"remoteaddr"` //ip:port
  43. Status string `json:"status"` //连接状态
  44. Pid int32 `json:"pid"` //进程ID
  45. }
  46. type AppInfo struct {
  47. Name string `json:"name"`
  48. Version string `json:"version"`
  49. }
  50. type SysInfo struct {
  51. Appinfo AppInfo `json:"appinfo"`
  52. Cpuinfo *CpuInfo `json:"cpuinfo,omitempty"`
  53. Meminfo *MemInfo `json:"meminfo,omitempty"`
  54. Diskinfos []DiskInfo `json:"diskinfo,omitempty"`
  55. Ifs []LcInterfaces `json:"ifs,omitempty"`
  56. Pis []ProcessInfo `json:"pis,omitempty"`
  57. TcpListen []ConnectionInfo `json:"tcplisten,omitempty"`
  58. TcpConn []ConnectionInfo `json:"tcpconn,omitempty"`
  59. Udp []ConnectionInfo `json:"udp,omitempty"`
  60. }
  61. type Pack_SysInfo struct {
  62. Header
  63. Data SysInfo `json:"data"`
  64. }
  65. func (o *Pack_SysInfo) EnCode(id, gid string, seq uint64, data SysInfo) (string, error) {
  66. o.Header.SetHeaderData(id, gid, seq)
  67. o.Data = data
  68. return json.MarshalToString(o)
  69. }
  70. func (o *Pack_SysInfo) DeCode(message string) error {
  71. return json.UnmarshalFromString(message, o)
  72. }