balancer

package
v2.1.2 Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2022 License: GPL-3.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// BalancerMockProcessFunc is the function to be called when Process is called
	BalancerMockProcessFunc func(instances []string) (string, error)
	// BalancerMockClusterStatusFunc is the function to be called when ClusterStatus is called
	BalancerMockClusterStatusFunc func(instances []string) ([]InstanceStatus, error)
)

Functions

This section is empty.

Types

type Balancer

type Balancer interface {
	Process(instances []string) (string, error)
	ClusterStatus(instances []string) ([]InstanceStatus, error)
}

Balancer find the right server to use

func New

func New(idb influxdb.QueryAPI, config *config.BalancerConfig, idbConfig *config.IDB) Balancer

New creates a new Balancer object

type InfluxDBBalancer

type InfluxDBBalancer struct {
	Client    influxdb.QueryAPI
	Config    *config.BalancerConfig
	IDBConfig *config.IDB
}

InfluxDBBalancer is the InfluxDB implementation of Balancer

func (*InfluxDBBalancer) ClusterStatus

func (b *InfluxDBBalancer) ClusterStatus(instances []string) ([]InstanceStatus, error)

ClusterStatus retrieve the cluster status. It returns a list containing all bbb instance with its status

func (*InfluxDBBalancer) Process

func (b *InfluxDBBalancer) Process(instances []string) (string, error)

Process compute data to find a bigbluebutton server

type InstanceStatus

type InstanceStatus struct {
	Host               string  `json:"host"`
	CPU                float64 `json:"cpu"`
	Mem                float64 `json:"mem"`
	ActiveMeeting      int64   `json:"active_meetings"`
	ActiveParticipants int64   `json:"active_participants"`
	APIStatus          string  `json:"api_status"`
}

InstanceStatus represents a cluster instance status at a time

type Mock

type Mock struct{}

Mock is a mock implementation of the Balancer interface

func (*Mock) ClusterStatus

func (b *Mock) ClusterStatus(instances []string) ([]InstanceStatus, error)

ClusterStatus is a mock implementation of the ClusterStatus method

func (*Mock) Process

func (b *Mock) Process(instances []string) (string, error)

Process is a mock implementation of the Process method

Jump to

Keyboard shortcuts

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