@@ -52,19 +52,24 @@ func (s *SweepingProvider) Stats() stats.Stats {
52
52
s .scheduleLk .Lock ()
53
53
scheduleSize := s .schedule .Size ()
54
54
nextPrefix := s .scheduleCursor
55
- _ , nextReprovideAt := trie .Find (s .schedule , nextPrefix )
55
+ ok , nextReprovideOffset := trie .Find (s .schedule , nextPrefix )
56
56
s .scheduleLk .Unlock ()
57
57
58
+ currentOffset := s .currentTimeOffset ()
59
+ nextReprovideAt := time.Time {}
60
+ if ok {
61
+ nextReprovideAt = now .Add (s .timeUntil (nextReprovideOffset ))
62
+ }
63
+
58
64
keys := - 1 // Default value if keyStore.Size() fails
59
65
if keyCount , err := s .keystore .Size (context .Background ()); err == nil {
60
66
keys = keyCount
61
67
}
62
- currentOffset := s .currentTimeOffset ()
63
68
snapshot .Schedule = stats.Schedule {
64
69
Keys : keys ,
65
70
Regions : scheduleSize ,
66
71
AvgPrefixLength : avgPrefixLen ,
67
- NextReprovideAt : now . Add ( nextReprovideAt - currentOffset ) ,
72
+ NextReprovideAt : nextReprovideAt ,
68
73
NextReprovidePrefix : nextPrefix ,
69
74
}
70
75
@@ -79,8 +84,8 @@ func (s *SweepingProvider) Stats() stats.Stats {
79
84
Active : active ,
80
85
ActivePeriodic : workerStats .Used [periodicWorker ],
81
86
ActiveBurst : workerStats .Used [burstWorker ],
82
- DedicatedPeriodic : workerStats .Used [periodicWorker ],
83
- DedicatedBurst : workerStats .Used [burstWorker ],
87
+ DedicatedPeriodic : workerStats .Reserves [periodicWorker ],
88
+ DedicatedBurst : workerStats .Reserves [burstWorker ],
84
89
QueuedPeriodic : workerStats .Queued [periodicWorker ],
85
90
QueuedBurst : workerStats .Queued [burstWorker ],
86
91
MaxProvideConnsPerWorker : s .maxProvideConnsPerWorker ,
@@ -121,15 +126,24 @@ func (s *SweepingProvider) Stats() stats.Stats {
121
126
peersFullyCovered := s .stats .peers .FullyCovered ()
122
127
reachableSum := s .stats .reachable .Sum ()
123
128
avgHoldersAvg := s .stats .avgHolders .Avg ()
129
+
130
+ keysProvidedPerMinute := 0.
131
+ if time .Duration (provideDurationSum ) > 0 {
132
+ keysProvidedPerMinute = float64 (keysPerProvideSum ) / time .Duration (provideDurationSum ).Minutes ()
133
+ }
134
+ keysReprovidedPerMinute := 0.
135
+ if time .Duration (reprovideDurationSum ) > 0 {
136
+ keysReprovidedPerMinute = float64 (keysPerReprovideSum ) / time .Duration (reprovideDurationSum ).Minutes ()
137
+ }
124
138
s .stats .cycleStatsLk .Unlock ()
125
139
126
140
pastOps := stats.PastOperations {
127
141
RecordsProvided : int (s .stats .recordsProvided .Load ()),
128
142
KeysProvided : int (s .stats .keysProvided .Load ()),
129
143
KeysFailed : int (s .stats .keysFailed .Load ()),
130
144
131
- KeysProvidedPerMinute : float64 ( keysPerProvideSum ) / time . Duration ( provideDurationSum ). Minutes () ,
132
- KeysReprovidedPerMinute : float64 ( keysPerReprovideSum ) / time . Duration ( reprovideDurationSum ). Minutes () ,
145
+ KeysProvidedPerMinute : keysProvidedPerMinute ,
146
+ KeysReprovidedPerMinute : keysReprovidedPerMinute ,
133
147
RegionReprovideDuration : time .Duration (reprovideDurationAvg ),
134
148
AvgKeysPerReprovide : keysPerReprovideAvg ,
135
149
RegionReprovidedLastCycle : reprovideDurationCount ,
0 commit comments