You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

report_hub_stats.go 1.9 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package tickevent
  2. /*
  3. import (
  4. "gitlink.org.cn/cloudream/common/utils/math2"
  5. stgglb "gitlink.org.cn/cloudream/jcs-pub/common/globals"
  6. stgmod "gitlink.org.cn/cloudream/jcs-pub/common/models"
  7. "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/storage/hubpool"
  8. "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/sysevent"
  9. )
  10. func ReportHubTransferStats(evtPub *sysevent.Publisher) {
  11. if stgglb.Stats.HubTransfer == nil {
  12. return
  13. }
  14. data := stgglb.Stats.HubTransfer.DumpData()
  15. endTime := stgglb.Stats.HubTransfer.Reset()
  16. for hubID, entry := range data.Entries {
  17. evtPub.Publish(&stgmod.BodyHubTransferStats{
  18. SourceHubID: *stgglb.Local.HubID,
  19. TargetHubID: hubID,
  20. Send: stgmod.DataTrans{
  21. TotalTransfer: entry.OutputBytes,
  22. RequestCount: entry.TotalOutput,
  23. FailedRequestCount: entry.TotalInput - entry.SuccessInput,
  24. AvgTransfer: math2.DivOrDefault(entry.OutputBytes, entry.TotalOutput, 0),
  25. MinTransfer: entry.MinOutputBytes,
  26. MaxTransfer: entry.MaxOutputBytes,
  27. },
  28. StartTimestamp: data.StartTime,
  29. EndTimestamp: endTime,
  30. })
  31. }
  32. }
  33. func ReportHubStorageTransferStats(stgHubs *hubpool.HubPool, evtPub *sysevent.Publisher) {
  34. if stgglb.Stats.HubStorageTransfer == nil {
  35. return
  36. }
  37. data := stgglb.Stats.HubStorageTransfer.DumpData()
  38. endTime := stgglb.Stats.HubStorageTransfer.Reset()
  39. for storageID, stg := range data.Entries {
  40. evtPub.Publish(&stgmod.BodyHubStorageTransferStats{
  41. HubID: *stgglb.Local.HubID,
  42. StorageID: storageID,
  43. Send: stgmod.DataTrans{
  44. TotalTransfer: stg.OutputBytes,
  45. RequestCount: stg.TotalOutput,
  46. FailedRequestCount: stg.TotalInput - stg.SuccessInput,
  47. AvgTransfer: math2.DivOrDefault(stg.OutputBytes, stg.TotalOutput, 0),
  48. MinTransfer: stg.MinOutputBytes,
  49. MaxTransfer: stg.MaxOutputBytes,
  50. },
  51. StartTimestamp: data.StartTime,
  52. EndTimestamp: endTime,
  53. })
  54. }
  55. }
  56. */

本项目旨在将云际存储公共基础设施化,使个人及企业可低门槛使用高效的云际存储服务(安装开箱即用云际存储客户端即可,无需关注其他组件的部署),同时支持用户灵活便捷定制云际存储的功能细节。