Documentation ¶
Index ¶
- func GetConfigErrors() map[string]string
- func GetLoaderErrors() map[string]LoaderErrors
- type AutoConfig
- func (ac *AutoConfig) AddListener(listener listeners.ServiceListener)
- func (ac *AutoConfig) AddLoader(loader check.Loader)
- func (ac *AutoConfig) AddProvider(provider providers.ConfigProvider, shouldPoll bool)
- func (ac *AutoConfig) GetChecks(config check.Config) ([]check.Check, error)
- func (ac *AutoConfig) GetChecksByName(checkName string) []check.Check
- func (ac *AutoConfig) LoadAndRun()
- func (ac *AutoConfig) StartPolling()
- func (ac *AutoConfig) Stop()
- type ConfigResolver
- type LoaderErrors
- type TemplateCache
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetConfigErrors ¶
GetConfigErrors gets the config errors
func GetLoaderErrors ¶
func GetLoaderErrors() map[string]LoaderErrors
GetLoaderErrors gets the errors from the loaderErrors struct
Types ¶
type AutoConfig ¶
type AutoConfig struct {
// contains filtered or unexported fields
}
AutoConfig is responsible to collect checks configurations from different sources and then create, update or destroy check instances. 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 runs the `ConfigResolver` that resolves a configuration template to an actual configuration based on data it extracts from a service that matches it the template
Notice the `AutoConfig` public API speaks in terms of `check.Config`, meaning that you cannot use it to schedule check instances directly.
func NewAutoConfig ¶
func NewAutoConfig(collector *collector.Collector) *AutoConfig
NewAutoConfig creates an AutoConfig instance.
func (*AutoConfig) AddListener ¶
func (ac *AutoConfig) AddListener(listener listeners.ServiceListener)
AddListener adds a service listener to AutoConfig.
func (*AutoConfig) AddLoader ¶
func (ac *AutoConfig) AddLoader(loader check.Loader)
AddLoader adds a new Loader that AutoConfig can use to load a check.
func (*AutoConfig) AddProvider ¶
func (ac *AutoConfig) AddProvider(provider providers.ConfigProvider, shouldPoll bool)
AddProvider adds a new configuration provider to AutoConfig. Callers must pass a flag to indicate whether the configuration provider expects to be polled or it's fine for it to be invoked only once in the Agent lifetime.
func (*AutoConfig) GetChecks ¶
GetChecks takes a check configuration and returns a slice of Check instances along with any error it might happen during the process
func (*AutoConfig) GetChecksByName ¶
func (ac *AutoConfig) GetChecksByName(checkName string) []check.Check
GetChecksByName returns any Check instance we can load for the given check name
func (*AutoConfig) LoadAndRun ¶
func (ac *AutoConfig) LoadAndRun()
LoadAndRun loads all of the configs it can find and schedules the corresponding Check instances. Should always be run once so providers that don't need polling will be queried at least once
func (*AutoConfig) StartPolling ¶
func (ac *AutoConfig) StartPolling()
StartPolling starts the goroutine responsible for polling the providers
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 ConfigResolver ¶
type ConfigResolver struct {
// contains filtered or unexported fields
}
ConfigResolver stores services and templates in cache, and matches services it hears about with templates to create valid configs. It is also responsible to send scheduling orders to AutoConfig
func (*ConfigResolver) ResolveTemplate ¶
func (cr *ConfigResolver) ResolveTemplate(tpl check.Config) []check.Config
ResolveTemplate attempts to resolve a configuration template using the AD identifiers in the `check.Config` struct to match a Service.
The function might return more than one configuration for a single template, for example when the `ad_identifiers` section of a config.yaml file contains multiple entries, or when more than one Service has the same identifier, e.g. 'redis'.
The function might return an empty list in the case the configuration has a list of Autodiscovery identifiers for services that are unknown to the resolver at this moment.
type LoaderErrors ¶
LoaderErrors is just an alias for a loader->error map
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 check.Config) error
Del removes a template from the cache