Help us shape the future of Go! Take the 2026 Go Developer Survey

uptime

package
v1.3.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 17, 2026 License: BSD-3-Clause Imports: 3 Imported by: 13

Documentation

Overview

Package uptime provides uptime calculation functionality

Index

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, chainID ids.ID) (time.Duration, time.Duration, error)
	CalculateUptimePercent(nodeID ids.NodeID, chainID ids.ID) (float64, error)
	CalculateUptimePercentFrom(nodeID ids.NodeID, chainID ids.ID, from time.Time) (float64, error)
	SetCalculator(chainID 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

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

func (NoOpCalculator) CalculateUptime(ids.NodeID, ids.ID) (time.Duration, time.Duration, error)

CalculateUptime always returns 100% uptime

func (NoOpCalculator) CalculateUptimePercent

func (NoOpCalculator) CalculateUptimePercent(ids.NodeID, ids.ID) (float64, error)

CalculateUptimePercent always returns 100% uptime

func (NoOpCalculator) CalculateUptimePercentFrom

func (NoOpCalculator) CalculateUptimePercentFrom(ids.NodeID, ids.ID, time.Time) (float64, error)

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

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

CalculateUptime always returns 0% uptime

func (ZeroUptimeCalculator) CalculateUptimePercent

func (ZeroUptimeCalculator) CalculateUptimePercent(ids.NodeID, ids.ID) (float64, error)

CalculateUptimePercent always returns 0% uptime

func (ZeroUptimeCalculator) CalculateUptimePercentFrom

func (ZeroUptimeCalculator) CalculateUptimePercentFrom(ids.NodeID, ids.ID, time.Time) (float64, error)

CalculateUptimePercentFrom always returns 0% uptime

func (ZeroUptimeCalculator) SetCalculator

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL