h_monitor.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package handler
  2. import (
  3. "cicv-data-closedloop/common/config/c_db"
  4. "cicv-data-closedloop/common/config/c_log"
  5. commonEntity "cicv-data-closedloop/common/entity"
  6. "cicv-data-closedloop/common/util"
  7. "github.com/gin-gonic/gin"
  8. "net/http"
  9. "time"
  10. )
  11. type DeviceMonitor struct {
  12. Id int `db:"id" json:"id"` // 自增id
  13. TotalCpuUsage string `db:"total_cpu_usage" json:"totalCpuUsage"` // cpu总占用
  14. TotalMemoryUsage string `db:"total_memory_usage" json:"totalMemoryUsage"` // 内存总占用
  15. Top10Process string `db:"top10_process" json:"top10Process"` // cpu占用前十的进程信息
  16. Top10Cpu string `db:"top10_cpu" json:"top10Cpu"` // cpu占用前十的进程信息
  17. Top10Mem string `db:"top10_mem" json:"top10Mem"` // 内存占用前十的进程信息
  18. DeviceNumber string `db:"device_number" json:"deviceNumber"` // 设备编号
  19. SocIp string `db:"soc_ip" json:"socIp"` // 芯片IP
  20. ReportTime time.Time `db:"report_time" json:"reportTime"` // 数据上报时间
  21. }
  22. // 保存实车上传的监控信息
  23. func SaveDeviceMonitor(c *gin.Context) {
  24. param := new(DeviceMonitor)
  25. // 映射到结构体
  26. if err := c.ShouldBindJSON(&param); err != nil {
  27. c_log.GlobalLogger.Error("项目启动接收请求参数报错:", err)
  28. c.JSON(http.StatusBadRequest, commonEntity.Response{
  29. Code: 500,
  30. Msg: "请求体解析失败。",
  31. })
  32. return
  33. }
  34. // 插入到数据库
  35. sqlTemplate, _ := util.ReadFile(c_db.SqlFilesMap["insert_device_monitor.sql"])
  36. if err := c_db.DoTx(sqlTemplate, []any{
  37. param.TotalCpuUsage,
  38. param.TotalMemoryUsage,
  39. param.Top10Process,
  40. param.Top10Cpu,
  41. param.Top10Mem,
  42. param.DeviceNumber,
  43. param.SocIp,
  44. time.Now(),
  45. }); err != nil {
  46. c_log.GlobalLogger.Error("插入数据报错:", err)
  47. c.JSON(http.StatusBadRequest, commonEntity.Response{
  48. Code: 500,
  49. Msg: "插入数据报错。",
  50. })
  51. return
  52. }
  53. c.JSON(http.StatusOK, commonEntity.Response{
  54. Code: 200,
  55. Msg: "插入数据成功。",
  56. })
  57. }