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

discovery

package
v0.9.1 Latest Latest
Warning

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

Go to latest
Published: Jul 29, 2022 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config interface {
	// Name returns the name of the discovery mechanism.
	Name() string

	// NewDiscoverer returns a Discoverer for the Config
	// with the given DiscovererOptions.
	NewDiscoverer(DiscovererOptions) (Discoverer, error)
}

A Config provides the configuration and constructor for a Discoverer.

type Configs

type Configs []Config

Configs is a slice of Config values that uses custom YAML marshaling and unmarshaling to represent itself as a mapping of the Config values grouped by their types.

type Discoverer

type Discoverer interface {
	// Run hands a channel to the discovery provider (Consul, DNS, etc.) through which
	// it can send updated target groups. It must return when the context is canceled.
	// It should not close the update channel on returning.
	Run(ctx context.Context, up chan<- []*target.Group) error
}

Discoverer provides information about target groups. It maintains a set of sources from which TargetGroups can originate. Whenever a discovery provider detects a potential change, it sends the TargetGroup through its channel.

Discoverer does not know if an actual change happened. It does guarantee that it sends the new TargetGroup whenever a change happens.

Discoverers should initially send a full set of all discoverable TargetGroups.

type DiscovererOptions

type DiscovererOptions struct {
	Logger log.Logger
}

DiscovererOptions provides options for a Discoverer.

type Manager

type Manager struct {

	// Some Discoverers(eg. k8s) send only the updates for a given target group
	// so we use map[tg.Source]*Group to know which group to update.
	Targets map[poolKey]map[string]*target.Group
	// contains filtered or unexported fields
}

Manager maintains a set of discovery providers and sends each update to a map channel. Targets are grouped by the target set name.

func NewManager

func NewManager(logger log.Logger, reg prometheus.Registerer, options ...func(*Manager)) *Manager

NewManager is the Discovery Manager constructor.

func (*Manager) ApplyConfig

func (m *Manager) ApplyConfig(ctx context.Context, cfg map[string]Configs) error

ApplyConfig removes all running discovery providers and starts new ones using the provided config.

func (*Manager) Run

func (m *Manager) Run(ctx context.Context) error

Run starts the background processing.

func (*Manager) StartCustomProvider

func (m *Manager) StartCustomProvider(ctx context.Context, name string, worker Discoverer)

StartCustomProvider is used for sdtool. Only use this if you know what you're doing.

func (*Manager) SyncCh

func (m *Manager) SyncCh() <-chan map[string][]*target.Group

SyncCh returns a read only channel used by all the clients to receive target updates.

type PodConfig

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

func NewPodConfig

func NewPodConfig(podLabel, socketPath, nodeName string) *PodConfig

func (*PodConfig) Name

func (c *PodConfig) Name() string

func (*PodConfig) NewDiscoverer

func (c *PodConfig) NewDiscoverer(d DiscovererOptions) (Discoverer, error)

type PodDiscoverer

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

func (*PodDiscoverer) Run

func (g *PodDiscoverer) Run(ctx context.Context, up chan<- []*target.Group) error

type StaticConfig

type StaticConfig []*target.Group

type SystemdConfig

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

func NewSystemdConfig

func NewSystemdConfig(systemdUnits []string, systemdCgroupPath string) *SystemdConfig

func (*SystemdConfig) Name

func (c *SystemdConfig) Name() string

func (*SystemdConfig) NewDiscoverer

func (c *SystemdConfig) NewDiscoverer(d DiscovererOptions) (Discoverer, error)

type SystemdDiscoverer

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

func (*SystemdDiscoverer) ReconcileUnit

func (c *SystemdDiscoverer) ReconcileUnit(ctx context.Context, unit string) (model.LabelSet, error)

func (*SystemdDiscoverer) Run

func (c *SystemdDiscoverer) Run(ctx context.Context, up chan<- []*target.Group) error

Jump to

Keyboard shortcuts

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