Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ProvidersFromConfig ¶
func ProvidersFromConfig(cfg config.ServiceDiscoveryConfig, logger log.Logger) map[string]TargetProvider
ProvidersFromConfig returns all TargetProviders configured in cfg.
Types ¶
type StaticProvider ¶
type StaticProvider struct {
TargetGroups []*config.TargetGroup
}
StaticProvider holds a list of target groups that never change.
func NewStaticProvider ¶
func NewStaticProvider(groups []*config.TargetGroup) *StaticProvider
NewStaticProvider returns a StaticProvider configured with the given target groups.
func (*StaticProvider) Run ¶
func (sd *StaticProvider) Run(ctx context.Context, ch chan<- []*config.TargetGroup)
Run implements the TargetProvider interface.
type Syncer ¶
type Syncer interface {
Sync([]*config.TargetGroup)
}
Syncer receives updates complete sets of TargetGroups.
type TargetProvider ¶
type TargetProvider interface { // Run hands a channel to the target provider through which it can send // updated target groups. // Must returns if the context gets canceled. It should not close the update // channel on returning. Run(ctx context.Context, up chan<- []*config.TargetGroup) }
A TargetProvider provides information about target groups. It maintains a set of sources from which TargetGroups can originate. Whenever a target provider detects a potential change, it sends the TargetGroup through its provided channel.
The TargetProvider does not have to guarantee that an actual change happened. It does guarantee that it sends the new TargetGroup whenever a change happens.
TargetProviders should initially send a full set of all discoverable TargetGroups.
type TargetSet ¶
type TargetSet struct {
// contains filtered or unexported fields
}
TargetSet handles multiple TargetProviders and sends a full overview of their discovered TargetGroups to a Syncer.
func NewTargetSet ¶
NewTargetSet returns a new target sending TargetGroups to the Syncer.
func (*TargetSet) Run ¶
Run starts the processing of target providers and their updates. It blocks until the context gets canceled.
func (*TargetSet) UpdateProviders ¶
func (ts *TargetSet) UpdateProviders(p map[string]TargetProvider)
UpdateProviders sets new target providers for the target set.