uptime

package
v1.22.25 Latest Latest
Warning

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

Go to latest
Published: Dec 13, 2025 License: BSD-3-Clause Imports: 3 Imported by: 8

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, 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

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 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

CalculateUptime always returns 0% uptime

func (ZeroUptimeCalculator) CalculateUptimePercent added in v1.22.2

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

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

Jump to

Keyboard shortcuts

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