Documentation ¶
Index ¶
- Constants
- Variables
- func GetIntegrationConfigFromFile(name, fpath string) (integration.Config, error)
- func GetPollInterval(cp config.ConfigurationProviders) time.Duration
- func RegisterProvider(name string, factory ConfigProviderFactory)
- type ClusterChecksConfigProvider
- type ConfigProvider
- type ConfigProviderFactory
- type ECSConfigProvider
- type FileConfigProvider
- type ProviderCache
Constants ¶
const KubeEndpointsProviderName = "kube_endpoints"
KubeEndpointsProviderName defines the kube endpoints provider name
Variables ¶
var ProviderCatalog = make(map[string]ConfigProviderFactory)
ProviderCatalog keeps track of config providers by name
Functions ¶
func GetIntegrationConfigFromFile ¶
func GetIntegrationConfigFromFile(name, fpath string) (integration.Config, error)
GetIntegrationConfigFromFile returns an instance of integration.Config if `fpath` points to a valid config file
func GetPollInterval ¶
func GetPollInterval(cp config.ConfigurationProviders) time.Duration
GetPollInterval computes the poll interval from the config
func RegisterProvider ¶
func RegisterProvider(name string, factory ConfigProviderFactory)
RegisterProvider adds a loader to the providers catalog
Types ¶
type ClusterChecksConfigProvider ¶
type ClusterChecksConfigProvider struct {
// contains filtered or unexported fields
}
ClusterChecksConfigProvider implements the ConfigProvider interface for the cluster check feature.
func (*ClusterChecksConfigProvider) Collect ¶
func (c *ClusterChecksConfigProvider) Collect() ([]integration.Config, error)
Collect retrieves configurations the cluster-agent dispatched to this agent
func (*ClusterChecksConfigProvider) IsUpToDate ¶
func (c *ClusterChecksConfigProvider) IsUpToDate() (bool, error)
IsUpToDate queries the cluster-agent to update its status and query if new configurations are available
func (*ClusterChecksConfigProvider) String ¶
func (c *ClusterChecksConfigProvider) String() string
String returns a string representation of the ClusterChecksConfigProvider
type ConfigProvider ¶
type ConfigProvider interface { Collect() ([]integration.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 NewClusterChecksConfigProvider ¶
func NewClusterChecksConfigProvider(cfg config.ConfigurationProviders) (ConfigProvider, error)
NewClusterChecksConfigProvider returns a new ConfigProvider collecting cluster check configurations from the cluster-agent. Connectivity is not checked at this stage to allow for retries, Collect will do it.
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{}
ECSConfigProvider implements the ConfigProvider interface. It collects configuration templates from the ECS metadata API.
func (*ECSConfigProvider) Collect ¶
func (p *ECSConfigProvider) Collect() ([]integration.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() ([]integration.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
String returns a string representation of the FileConfigProvider
type ProviderCache ¶
ProviderCache contains the number of AD Templates and the latest Index