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<- []*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 ¶
DiscovererOptions provides options for a Discoverer.
type Group ¶ added in v0.10.0
type Group struct {
// Targets is a list of targets identified by a label set. Each target is
// uniquely identifiable in the group by its address label.
Targets []model.LabelSet
// Labels is a set of labels that is common across all targets in the group.
Labels model.LabelSet
// Source is an identifier that describes a group of targets.
Source string
// PIDs running in this group. This is used to match processes to other metadata.
PIDs []int
}
Group is a set of targets with a common label set(production, test, staging etc.).
type Manager ¶
type Manager struct {
// Some Discoverers(eg. kubernetes) 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]*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 ¶
ApplyConfig removes all running discovery providers and starts new ones using the provided config.
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.
type PodConfig ¶
type PodConfig struct {
// contains filtered or unexported fields
}
func NewPodConfig ¶
func (*PodConfig) NewDiscoverer ¶
func (c *PodConfig) NewDiscoverer(d DiscovererOptions) (Discoverer, error)
type PodDiscoverer ¶
type PodDiscoverer struct {
// contains filtered or unexported fields
}
type StaticConfig ¶
type StaticConfig []*Group
type SystemdConfig ¶
type SystemdConfig struct{}
func NewSystemdConfig ¶
func NewSystemdConfig() *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
}