|
- package tickevent
-
- import (
- "gitlink.org.cn/cloudream/common/utils/math2"
- stgglb "gitlink.org.cn/cloudream/storage/common/globals"
- stgmod "gitlink.org.cn/cloudream/storage/common/models"
- "gitlink.org.cn/cloudream/storage/common/pkgs/storage/agtpool"
- "gitlink.org.cn/cloudream/storage/common/pkgs/sysevent"
- )
-
- func ReportHubTransferStats(evtPub *sysevent.Publisher) {
- if stgglb.Stats.HubTransfer == nil {
- return
- }
-
- data := stgglb.Stats.HubTransfer.DumpData()
- endTime := stgglb.Stats.HubTransfer.Reset()
-
- for hubID, entry := range data.Entries {
- evtPub.Publish(&stgmod.BodyHubTransferStats{
- SourceHubID: *stgglb.Local.HubID,
- TargetHubID: hubID,
- Send: stgmod.DataTrans{
- TotalTransfer: entry.OutputBytes,
- RequestCount: entry.TotalOutput,
- FailedRequestCount: entry.TotalInput - entry.SuccessInput,
- AvgTransfer: math2.DivOrDefault(entry.OutputBytes, entry.TotalOutput, 0),
- MinTransfer: entry.MinOutputBytes,
- MaxTransfer: entry.MaxOutputBytes,
- },
- StartTimestamp: data.StartTime,
- EndTimestamp: endTime,
- })
- }
- }
-
- func ReportHubStorageTransferStats(stgAgts *agtpool.AgentPool, evtPub *sysevent.Publisher) {
- if stgglb.Stats.HubStorageTransfer == nil {
- return
- }
-
- data := stgglb.Stats.HubStorageTransfer.DumpData()
- endTime := stgglb.Stats.HubStorageTransfer.Reset()
-
- for storageID, stg := range data.Entries {
- evtPub.Publish(&stgmod.BodyHubStorageTransferStats{
- HubID: *stgglb.Local.HubID,
- StorageID: storageID,
- Send: stgmod.DataTrans{
- TotalTransfer: stg.OutputBytes,
- RequestCount: stg.TotalOutput,
- FailedRequestCount: stg.TotalInput - stg.SuccessInput,
- AvgTransfer: math2.DivOrDefault(stg.OutputBytes, stg.TotalOutput, 0),
- MinTransfer: stg.MinOutputBytes,
- MaxTransfer: stg.MaxOutputBytes,
- },
- StartTimestamp: data.StartTime,
- EndTimestamp: endTime,
- })
- }
- }
|