beacon

package
v1.10.0-rc1 Latest Latest
Warning

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

Go to latest
Published: May 8, 2026 License: AGPL-3.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Server

type Server struct {
	// contains filtered or unexported fields
}

func New

func New() *Server

func NewWithPeers

func NewWithPeers(beaconID uint32, peers []string) *Server

NewWithPeers creates a beacon server with gossip peer support. beaconID uniquely identifies this beacon instance (0 = standalone). peers is a list of peer beacon addresses for gossip exchange.

func (*Server) Addr

func (s *Server) Addr() net.Addr

Addr returns the server's bound address. Only valid after Ready() fires.

func (*Server) Close

func (s *Server) Close() error

func (*Server) ListenAndServe

func (s *Server) ListenAndServe(addr string) error

func (*Server) LocalNodeCount

func (s *Server) LocalNodeCount() int

LocalNodeCount returns the number of locally registered nodes.

func (*Server) PeerNodeCount

func (s *Server) PeerNodeCount() int

PeerNodeCount returns the number of nodes known via gossip from peer beacons.

func (*Server) Ready

func (s *Server) Ready() <-chan struct{}

Ready returns a channel that is closed when the server has bound its port.

func (*Server) RelayDropped added in v1.9.0

func (s *Server) RelayDropped() uint64

RelayDropped returns the count of relay packets dropped (capacity / errors).

func (*Server) RelayForwarded added in v1.9.0

func (s *Server) RelayForwarded() uint64

RelayForwarded returns the count of relay packets the beacon has forwarded since startup. Used by /api/stats to surface observable evidence that the relay path is live.

func (*Server) RelayNotFound added in v1.9.0

func (s *Server) RelayNotFound() uint64

RelayNotFound returns the count of relay packets dropped because the destination node was not registered with the beacon.

func (*Server) SendPunchCommand

func (s *Server) SendPunchCommand(nodeID uint32, targetIP net.IP, targetPort uint16) error

SendPunchCommand tells a node to send UDP to a target endpoint.

func (*Server) ServeHealth

func (s *Server) ServeHealth(addr string) error

ServeHealth starts a simple HTTP server with a /healthz endpoint for load balancer health checks.

func (*Server) SetAdvertiseAddr added in v1.9.1

func (s *Server) SetAdvertiseAddr(addr string)

SetAdvertiseAddr sets the address this beacon registers with the registry. When empty (default), the beacon auto-detects from its TCP local addr to the registry — which on a GCP MIG deployment yields the INTERNAL VPC address (10.128.0.x), unreachable from external daemons. MIG-deployed beacons must set this to the public DNAT entrypoint (e.g. the rendezvous reserved IP on UDP 9001) so external clients receive a routable address from beacon_list.

func (*Server) SetHealthy

func (s *Server) SetHealthy(ok bool)

SetHealthy sets the health status (for graceful drain on scale-down).

func (*Server) SetRegistry

func (s *Server) SetRegistry(addr string)

SetRegistry sets the registry address for dynamic peer discovery. Safe to call at any time — protected by mu so the discovery loop does not race against a post-startup SetRegistry call.

Jump to

Keyboard shortcuts

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