Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ProviderCatalog = make(map[string]ConfigProviderFactory)
ProviderCatalog keeps track of config providers by name
Functions ¶
func GetCheckConfigFromFile ¶
GetCheckConfigFromFile returns an instance of check.Config if `fpath` points to a valid config file
func RegisterProvider ¶
func RegisterProvider(name string, factory ConfigProviderFactory)
RegisterProvider adds a loader to the providers catalog
Types ¶
type ConfigProvider ¶
type ConfigProvider interface { Collect() ([]check.Config, error) String() string IsUpToDate() (bool, error) }
ConfigProvider is the interface that wraps the Collect method
Collect is responsible of populating a list of CheckConfig instances by retrieving configuration patterns from external resources: files on disk, databases, environment variables are just few examples.
Any type implementing the interface will take care of any dependency or data needed to access the resource providing the configuration. IsUpToDate checks the local cache of the CP and returns accordingly.
func NewECSConfigProvider ¶
func NewECSConfigProvider(config config.ConfigurationProviders) (ConfigProvider, error)
NewECSConfigProvider returns a new ECSConfigProvider. It configures an http Client with a 500 ms timeout.
type ConfigProviderFactory ¶
type ConfigProviderFactory func(cfg config.ConfigurationProviders) (ConfigProvider, error)
ConfigProviderFactory is any function capable to create a ConfigProvider instance
type ECSConfigProvider ¶
type ECSConfigProvider struct {
// contains filtered or unexported fields
}
ECSConfigProvider implements the ConfigProvider interface. It collects configuration templates from the ECS metadata API.
func (*ECSConfigProvider) Collect ¶
func (p *ECSConfigProvider) Collect() ([]check.Config, error)
Collect finds all running containers in the agent's task, reads their labels and extract configuration templates from them for auto discovery.
func (*ECSConfigProvider) IsUpToDate ¶
func (p *ECSConfigProvider) IsUpToDate() (bool, error)
IsUpToDate updates the list of AD templates versions in the Agent's cache and checks the list is up to date compared to ECS' data.
func (*ECSConfigProvider) String ¶
func (p *ECSConfigProvider) String() string
String returns a string representation of the ECSConfigProvider
type FileConfigProvider ¶
type FileConfigProvider struct { Errors map[string]string // contains filtered or unexported fields }
FileConfigProvider collect configuration files from disk
func NewFileConfigProvider ¶
func NewFileConfigProvider(paths []string) *FileConfigProvider
NewFileConfigProvider creates a new FileConfigProvider searching for configuration files on the given paths
func (*FileConfigProvider) Collect ¶
func (c *FileConfigProvider) Collect() ([]check.Config, error)
Collect scans provided paths searching for configuration files. When found, it parses the files and try to unmarshall Yaml contents into a CheckConfig instance
func (*FileConfigProvider) IsUpToDate ¶
func (c *FileConfigProvider) IsUpToDate() (bool, error)
IsUpToDate is not implemented for the file Providers as the files are not meant to change very often.
func (*FileConfigProvider) String ¶
func (c *FileConfigProvider) String() string
type ProviderCache ¶
ProviderCache contains the number of AD Templates and the latest Index