Documentation
¶
Overview ¶
Package uptime provides uptime calculation functionality
Index ¶
- type Calculator
- type LockedCalculator
- type NoOpCalculator
- func (NoOpCalculator) CalculateUptime(ids.NodeID, ids.ID) (time.Duration, time.Duration, error)
- func (NoOpCalculator) CalculateUptimePercent(ids.NodeID, ids.ID) (float64, error)
- func (NoOpCalculator) CalculateUptimePercentFrom(ids.NodeID, ids.ID, time.Time) (float64, error)
- func (NoOpCalculator) SetCalculator(ids.ID, Calculator) error
- type State
- type ZeroUptimeCalculator
- func (ZeroUptimeCalculator) CalculateUptime(ids.NodeID, ids.ID) (time.Duration, time.Duration, error)
- func (ZeroUptimeCalculator) CalculateUptimePercent(ids.NodeID, ids.ID) (float64, error)
- func (ZeroUptimeCalculator) CalculateUptimePercentFrom(ids.NodeID, ids.ID, time.Time) (float64, error)
- func (ZeroUptimeCalculator) SetCalculator(ids.ID, Calculator) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Calculator ¶
type Calculator interface {
CalculateUptime(nodeID ids.NodeID, subnetID ids.ID) (time.Duration, time.Duration, error)
CalculateUptimePercent(nodeID ids.NodeID, subnetID ids.ID) (float64, error)
CalculateUptimePercentFrom(nodeID ids.NodeID, subnetID ids.ID, from time.Time) (float64, error)
SetCalculator(subnetID ids.ID, calc Calculator) error
}
Calculator calculates uptime
type LockedCalculator ¶
type LockedCalculator interface {
Calculator
}
LockedCalculator is a wrapper for a Calculator that ensures thread-safety
func NewLockedCalculator ¶
func NewLockedCalculator() LockedCalculator
NewLockedCalculator returns a new LockedCalculator with default NoOp behavior
func NewLockedCalculatorWithFallback ¶ added in v1.22.2
func NewLockedCalculatorWithFallback(fallback Calculator) LockedCalculator
NewLockedCalculatorWithFallback returns a new LockedCalculator with a custom fallback
type NoOpCalculator ¶
type NoOpCalculator struct{}
NoOpCalculator is a no-op implementation of Calculator
func (NoOpCalculator) CalculateUptime ¶
CalculateUptime always returns 100% uptime
func (NoOpCalculator) CalculateUptimePercent ¶
CalculateUptimePercent always returns 100% uptime
func (NoOpCalculator) CalculateUptimePercentFrom ¶
CalculateUptimePercentFrom always returns 100% uptime
func (NoOpCalculator) SetCalculator ¶
func (NoOpCalculator) SetCalculator(ids.ID, Calculator) error
SetCalculator is a no-op
type State ¶
type State interface {
// GetUptime returns the uptime for a validator
GetUptime(nodeID ids.NodeID, netID ids.ID) (time.Duration, time.Duration, error)
// SetUptime sets the uptime for a validator
SetUptime(nodeID ids.NodeID, netID ids.ID, uptime time.Duration, lastUpdated time.Time) error
// GetStartTime returns when the validator started
GetStartTime(nodeID ids.NodeID, netID ids.ID) (time.Time, error)
}
State tracks validator uptime
type ZeroUptimeCalculator ¶ added in v1.22.2
type ZeroUptimeCalculator struct{}
ZeroUptimeCalculator is an implementation of Calculator that always returns 0% uptime. This is useful for testing scenarios where validators have "never connected".
func (ZeroUptimeCalculator) CalculateUptime ¶ added in v1.22.2
func (ZeroUptimeCalculator) CalculateUptime(ids.NodeID, ids.ID) (time.Duration, time.Duration, error)
CalculateUptime always returns 0% uptime
func (ZeroUptimeCalculator) CalculateUptimePercent ¶ added in v1.22.2
CalculateUptimePercent always returns 0% uptime
func (ZeroUptimeCalculator) CalculateUptimePercentFrom ¶ added in v1.22.2
func (ZeroUptimeCalculator) CalculateUptimePercentFrom(ids.NodeID, ids.ID, time.Time) (float64, error)
CalculateUptimePercentFrom always returns 0% uptime
func (ZeroUptimeCalculator) SetCalculator ¶ added in v1.22.2
func (ZeroUptimeCalculator) SetCalculator(ids.ID, Calculator) error
SetCalculator is a no-op
Directories
¶
| Path | Synopsis |
|---|---|
|
Package uptimemock provides mock implementations for uptime tracking
|
Package uptimemock provides mock implementations for uptime tracking |