Documentation ¶
Index ¶
- func GetConfigErrors() map[string]string
- func GetResolveWarnings() map[string][]string
- type AutoConfig
- func (ac *AutoConfig) AddConfigProvider(provider providers.ConfigProvider, shouldPoll bool, pollInterval time.Duration)
- func (ac *AutoConfig) AddListeners(listenerConfigs []config.Listeners)
- func (ac *AutoConfig) AddScheduler(name string, s scheduler.Scheduler, replayConfigs bool)
- func (ac *AutoConfig) GetAllConfigs() []integration.Config
- func (ac *AutoConfig) GetAutodiscoveryErrors() map[string]map[string]providers.ErrorMsgSet
- func (ac *AutoConfig) GetUnresolvedTemplates() map[string][]integration.Config
- func (ac *AutoConfig) HasRunOnce() bool
- func (ac *AutoConfig) LoadAndRun()
- func (ac *AutoConfig) LoadedConfigs() []integration.Config
- func (ac *AutoConfig) MapOverLoadedConfigs(f func(map[string]integration.Config))
- func (ac *AutoConfig) RemoveScheduler(name string)
- func (ac *AutoConfig) Stop()
- type TemplateCache
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetConfigErrors ¶
GetConfigErrors gets the config errors
func GetResolveWarnings ¶
GetResolveWarnings get the resolve warnings/errors
Types ¶
type AutoConfig ¶
type AutoConfig struct {
// contains filtered or unexported fields
}
AutoConfig is responsible to collect integrations configurations from different sources and then schedule or unschedule them. It owns and orchestrates several key modules:
- it owns a reference to the `collector.Collector` that it uses to schedule checks when template or container updates warrant them
- it holds a list of `providers.ConfigProvider`s and poll them according to their policy
- it holds a list of `check.Loader`s to load configurations into `Check` objects
- it holds a list of `listeners.ServiceListener`s` used to listen to container lifecycle events
- it uses the `ConfigResolver` that resolves a configuration template to an actual configuration based on a service matching the template
Notice the `AutoConfig` public API speaks in terms of `integration.Config`, meaning that you cannot use it to schedule integrations instances directly.
func NewAutoConfig ¶
func NewAutoConfig(scheduler *scheduler.MetaScheduler) *AutoConfig
NewAutoConfig creates an AutoConfig instance.
func (*AutoConfig) AddConfigProvider ¶
func (ac *AutoConfig) AddConfigProvider(provider providers.ConfigProvider, shouldPoll bool, pollInterval time.Duration)
AddConfigProvider adds a new configuration provider to AutoConfig. Callers must pass a flag to indicate whether the configuration provider expects to be polled and at which interval or it's fine for it to be invoked only once in the Agent lifetime. If the config provider is polled, the routine is scheduled right away
func (*AutoConfig) AddListeners ¶
func (ac *AutoConfig) AddListeners(listenerConfigs []config.Listeners)
AddListeners tries to initialise the listeners listed in the given configs. A first try is done synchronously. If a listener fails with a ErrWillRetry, the initialization will be re-triggered later until success or ErrPermaFail.
func (*AutoConfig) AddScheduler ¶
func (ac *AutoConfig) AddScheduler(name string, s scheduler.Scheduler, replayConfigs bool)
AddScheduler allows to register a new scheduler to receive configurations. Previously emitted configurations can be replayed with the replayConfigs flag.
func (*AutoConfig) GetAllConfigs ¶
func (ac *AutoConfig) GetAllConfigs() []integration.Config
GetAllConfigs queries all the providers and returns all the integration configurations found, resolving the ones it can
func (*AutoConfig) GetAutodiscoveryErrors ¶
func (ac *AutoConfig) GetAutodiscoveryErrors() map[string]map[string]providers.ErrorMsgSet
GetAutodiscoveryErrors fetches AD errors from each ConfigProvider
func (*AutoConfig) GetUnresolvedTemplates ¶
func (ac *AutoConfig) GetUnresolvedTemplates() map[string][]integration.Config
GetUnresolvedTemplates returns templates in cache yet to be resolved
func (*AutoConfig) HasRunOnce ¶
func (ac *AutoConfig) HasRunOnce() bool
HasRunOnce returns true if the AutoConfig has ran once.
func (*AutoConfig) LoadAndRun ¶
func (ac *AutoConfig) LoadAndRun()
LoadAndRun loads all of the integration configs it can find and schedules them. Should always be run once so providers that don't need polling will be queried at least once
func (*AutoConfig) LoadedConfigs ¶
func (ac *AutoConfig) LoadedConfigs() []integration.Config
LoadedConfigs returns a slice of all loaded configs. This slice is freshly created and will not be modified after return.
func (*AutoConfig) MapOverLoadedConfigs ¶
func (ac *AutoConfig) MapOverLoadedConfigs(f func(map[string]integration.Config))
MapOverLoadedConfigs calls the given function with the map of all loaded configs. This is done with the config store locked, so callers should perform minimal work within f.
func (*AutoConfig) RemoveScheduler ¶
func (ac *AutoConfig) RemoveScheduler(name string)
RemoveScheduler allows to remove a scheduler from the AD system.
func (*AutoConfig) Stop ¶
func (ac *AutoConfig) Stop()
Stop just shuts down AutoConfig in a clean way. AutoConfig is not supposed to be restarted, so this is expected to be called only once at program exit.
type TemplateCache ¶
type TemplateCache struct {
// contains filtered or unexported fields
}
TemplateCache is a data structure to store configuration templates
func (*TemplateCache) Del ¶
func (cache *TemplateCache) Del(tpl integration.Config) error
Del removes a template from the cache
func (*TemplateCache) Get ¶
func (cache *TemplateCache) Get(adID string) ([]integration.Config, error)
Get retrieves a template from the cache
func (*TemplateCache) GetUnresolvedTemplates ¶
func (cache *TemplateCache) GetUnresolvedTemplates() map[string][]integration.Config
GetUnresolvedTemplates returns templates yet to be resolved
func (*TemplateCache) Set ¶
func (cache *TemplateCache) Set(tpl integration.Config) error
Set stores or updates a template in the cache