/
ratesetter.go
42 lines (34 loc) · 966 Bytes
/
ratesetter.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package metrics
import (
"time"
)
var (
// schedulerRate rate at which blocks are scheduled.
ownRate float64
// readyBlocksCount number of ready blocks in the scheduler buffer.
rateSetterBufferSize int
// totalBlocksCount number of blocks in the scheduler buffer.
rateSetterEstimate time.Duration
)
func measureRateSetter() {
rateSetter := deps.Tangle.RateSetter
Events.RateSetterUpdated.Trigger(&RateSetterMetric{
Size: rateSetter.Size(),
Estimate: rateSetter.Estimate(),
Rate: rateSetter.Rate(),
})
ownRate = rateSetter.Rate()
rateSetterBufferSize = rateSetter.Size()
rateSetterEstimate = rateSetter.Estimate()
}
func OwnRate() float64 {
return ownRate
}
// RateSetterBufferSize number of ready blocks in the rate setter buffer.
func RateSetterBufferSize() int {
return rateSetterBufferSize
}
// RateSetterEstimate returns the maximum buffer size.
func RateSetterEstimate() int64 {
return rateSetterEstimate.Milliseconds()
}