runtimeconfig

package
v0.0.0-...-de40865 Latest Latest
Warning

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

Go to latest
Published: Apr 11, 2024 License: Apache-2.0 Imports: 17 Imported by: 15

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	ReloadPeriod time.Duration `yaml:"period" category:"advanced"`
	// LoadPath contains the path to the runtime config files.
	// Requires a non-empty value
	LoadPath flagext.StringSliceCSV `yaml:"file"`
	Loader   Loader                 `yaml:"-"`
}

Config holds the config for an Manager instance. It holds config related to loading per-tenant config.

func (*Config) RegisterFlags

func (mc *Config) RegisterFlags(f *flag.FlagSet)

RegisterFlags registers flags.

type Loader

type Loader func(r io.Reader) (interface{}, error)

Loader loads the configuration from files.

type Manager

type Manager struct {
	services.Service
	// contains filtered or unexported fields
}

Manager periodically reloads the configuration from specified files, and keeps this configuration available for clients.

func New

func New(cfg Config, configName string, registerer prometheus.Registerer, logger log.Logger) (*Manager, error)

New creates an instance of Manager. Manager is a services.Service, and must be explicitly started to perform any work.

func (*Manager) CloseListenerChannel

func (om *Manager) CloseListenerChannel(listener <-chan interface{})

CloseListenerChannel removes given channel from list of channels to send notifications to and closes channel.

func (*Manager) CreateListenerChannel

func (om *Manager) CreateListenerChannel(buffer int) <-chan interface{}

CreateListenerChannel creates new channel that can be used to receive new config values. If there is no receiver waiting for value when config manager tries to send the update, or channel buffer is full, update is discarded.

When config manager is stopped, it closes all channels to notify receivers that they will not receive any more updates.

func (*Manager) GetConfig

func (om *Manager) GetConfig() interface{}

GetConfig returns last loaded config value, possibly nil.

Jump to

Keyboard shortcuts

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