discovery

package
v0.8.2-rc.0 Latest Latest
Warning

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

Go to latest
Published: Jun 9, 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