apm_register_host.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package containers
  2. import (
  3. "fmt"
  4. "runtime"
  5. "time"
  6. . "github.com/coroot/coroot-node-agent/utils/modelse"
  7. klog "github.com/sirupsen/logrus"
  8. )
  9. func (r *Registry) RegisterHost() error {
  10. // 注册
  11. nodeInfo := r.nodeInfo.GetNodeInfo()
  12. if nodeInfo == nil {
  13. return fmt.Errorf("could not find node info")
  14. }
  15. req := RegisterHostReq{
  16. LicenseKey: nodeInfo.LicenseKey,
  17. HostId: nodeInfo.HostID,
  18. HostIp: nodeInfo.HostIp,
  19. HostName: nodeInfo.Hostname,
  20. HostNameAlias: nodeInfo.Hostname,
  21. HostType: 1,
  22. Version: nodeInfo.AgentVersion,
  23. SysVersion: runtime.GOOS + " " + runtime.GOARCH,
  24. SystemUuid: nodeInfo.SystemUUID,
  25. Ebpf: true,
  26. AgentType: 2020,
  27. }
  28. accountID, err := r.connServer.RegisterHost(req)
  29. if err != nil {
  30. return err
  31. }
  32. // 更新nodeInfo中的AccountID
  33. if r.nodeInfo != nil {
  34. r.nodeInfo.AccountID = accountID
  35. klog.Infof("[register host] Updated account_id to %d", accountID)
  36. }
  37. return nil
  38. }
  39. func (r *Registry) TaskRegisterHost() {
  40. gcTicker := time.NewTicker(RegisterHostInterval)
  41. defer gcTicker.Stop()
  42. for {
  43. select {
  44. case <-gcTicker.C:
  45. //_, err1 := os.Stat("/tmp/fuse")
  46. //if err1 == nil {
  47. // //r.isFusing = true
  48. // r.DoFusing()
  49. //} else {
  50. // r.DoResume()
  51. // //r.isFusing = false
  52. //}
  53. err := r.RegisterHost()
  54. if err != nil {
  55. klog.WithError(err).Error("[task] Failed to register host")
  56. }
  57. }
  58. }
  59. }