c_resource.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package config
  2. import (
  3. "cicv-data-closedloop/common/config/c_log"
  4. "cicv-data-closedloop/common/util"
  5. "encoding/json"
  6. "fmt"
  7. "github.com/sirupsen/logrus"
  8. "os"
  9. "path/filepath"
  10. "runtime"
  11. "time"
  12. )
  13. // 保存资源占用情况
  14. func SendResourceUsage() {
  15. initLog("/mnt/media/sda1/cicv-data-closedloop/log/", "resource")
  16. for {
  17. time.Sleep(time.Duration(10) * time.Second)
  18. top10Cpu, top10Mem := util.GetTop10CpuAndMem()
  19. top10CpuJson, _ := json.MarshalIndent(top10Cpu, "", " ")
  20. top10MemJson, _ := json.MarshalIndent(top10Mem, "", " ")
  21. requestMap := map[string]string{
  22. "totalCpuUsage": util.ToString(util.GetCpuPercent()),
  23. "totalMemoryUsage": util.ToString(util.GetMemoryPercent()),
  24. "top10Process": string(top10CpuJson),
  25. "top10Cpu": string(top10CpuJson),
  26. "top10Mem": string(top10MemJson),
  27. "deviceNumber": LocalConfig.EquipmentNo,
  28. "socIp": LocalConfig.Node.Ip,
  29. }
  30. c_log.GlobalLogger.Infof("监控信息为:%v", requestMap)
  31. //responseString, err := util.HttpPostJsonWithHeaders(
  32. // CloudConfig.Monitor.Url,
  33. // map[string]string{"Authorization": "U9yKpD6kZZDDe4LFKK6myAxBUT1XRrDM"},
  34. // requestMap,
  35. //)
  36. //if err != nil {
  37. // c_log.GlobalLogger.Errorf("发送数据监控信息报错%v,响应信息为:%v", err, responseString)
  38. //}
  39. //c_log.GlobalLogger.Infof("发送数据监控信息成功,响应信息为:%v", responseString)
  40. }
  41. }
  42. var resourceLogger *logrus.Logger
  43. // InitLog 初始化日志配置
  44. func initLog(logDir string, prefix string) {
  45. time.Sleep(time.Duration(1) * time.Second)
  46. // 创建、追加、读写,777,所有权限
  47. logPath := logDir + prefix + "-" + time.Now().Format("2006-01-02-15-04-05") + ".log"
  48. err := util.CreateParentDir(logPath)
  49. if err != nil {
  50. os.Exit(-1)
  51. }
  52. f, err := os.OpenFile(logPath, os.O_CREATE|os.O_APPEND|os.O_RDWR, os.ModePerm)
  53. if err != nil {
  54. os.Exit(-1)
  55. }
  56. resourceLogger = logrus.New()
  57. resourceLogger.SetOutput(f)
  58. resourceLogger.SetReportCaller(true) // 开启行号显示
  59. resourceLogger.SetFormatter(&logrus.JSONFormatter{
  60. CallerPrettyfier: func(frame *runtime.Frame) (string, string) {
  61. fileName := filepath.Base(frame.File)
  62. return "", fmt.Sprintf("%s:%d", fileName, frame.Line)
  63. },
  64. })
  65. resourceLogger.Info("初始化resourceLogger - 成功")
  66. }