config

package
v0.41.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 7, 2024 License: Apache-2.0 Imports: 44 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckSecret

func CheckSecret(t *testing.T, rawCfg string, originalValue string)

CheckSecret is a helper function to ensure the original value is overwritten with <secret>

func LoadBytes

func LoadBytes(buf []byte, expandEnvVars bool, c *Config) error

LoadBytes unmarshals a config from a buffer. Defaults are not applied to the file and must be done manually if LoadBytes is called directly.

func LoadFile

func LoadFile(filename string, expandEnvVars bool, c *Config) error

LoadFile reads a file and passes the contents to Load

func LoadRemote

func LoadRemote(url string, expandEnvVars bool, c *Config) error

LoadRemote reads a config from url

Types

type AgentManagementConfig

type AgentManagementConfig struct {
	Enabled          bool                    `yaml:"-"` // Derived from enable-features=agent-management
	Host             string                  `yaml:"host"`
	Protocol         string                  `yaml:"protocol"`
	PollingInterval  time.Duration           `yaml:"polling_interval"`
	HTTPClientConfig config.HTTPClientConfig `yaml:",inline"`

	RemoteConfiguration RemoteConfiguration `yaml:"remote_configuration"`
}

func (*AgentManagementConfig) JitterTime

func (am *AgentManagementConfig) JitterTime() time.Duration

jitterTime returns a random duration in the range [0, am.PollingInterval).

func (*AgentManagementConfig) SleepTime

func (am *AgentManagementConfig) SleepTime() time.Duration

SleepTime returns the duration in between config fetches.

func (*AgentManagementConfig) Validate

func (am *AgentManagementConfig) Validate() error

Validate checks that necessary portions of the config have been set.

type AgentMetadata

type AgentMetadata struct {
	ExternalLabels    map[string]string `json:"external_labels,omitempty" yaml:"external_labels,omitempty"`
	TemplateVariables map[string]any    `json:"template_variables,omitempty" yaml:"template_variables,omitempty"`
}

type BaseConfigContent

type BaseConfigContent string

BaseConfigContent is the content of a base config

type Config

type Config struct {
	Server          *server.Config        `yaml:"server,omitempty"`
	Metrics         metrics.Config        `yaml:"metrics,omitempty"`
	Integrations    VersionedIntegrations `yaml:"integrations,omitempty"`
	Traces          traces.Config         `yaml:"traces,omitempty"`
	Logs            *logs.Config          `yaml:"logs,omitempty"`
	AgentManagement AgentManagementConfig `yaml:"agent_management,omitempty"`

	// Flag-only fields
	ServerFlags server.Flags `yaml:"-"`

	// Deprecated fields user has used. Generated during UnmarshalYAML.
	Deprecations []string `yaml:"-"`

	// Remote config options
	BasicAuthUser     string `yaml:"-"`
	BasicAuthPassFile string `yaml:"-"`

	// Toggle for config endpoint(s)
	EnableConfigEndpoints bool `yaml:"-"`

	// Toggle for support bundle generation.
	DisableSupportBundle bool `yaml:"-"`

	// Report enabled features options
	EnableUsageReport bool     `yaml:"-"`
	EnabledFeatures   []string `yaml:"-"`
}

Config contains underlying configurations for the agent

func DefaultConfig

func DefaultConfig() Config

DefaultConfig holds default settings for all the subsystems.

func Load

func Load(fs *flag.FlagSet, args []string, log *server.Logger) (*Config, error)

Load loads a config file from a flagset. Flags will be registered to the flagset before parsing them with the values specified by args.

func LoadFromFunc

func LoadFromFunc(fs *flag.FlagSet, args []string, loader loaderFunc) (*Config, error)

LoadFromFunc injects a function for retrieving the config file that doesn't require having a literal file on disk.

func (*Config) LogDeprecations

func (c *Config) LogDeprecations(l log.Logger)

LogDeprecations will log use of any deprecated fields to l as warn-level messages.

func (Config) MarshalYAML

func (c Config) MarshalYAML() (interface{}, error)

MarshalYAML implements yaml.Marshaler.

func (*Config) RegisterFlags

func (c *Config) RegisterFlags(f *flag.FlagSet)

RegisterFlags registers flags in underlying configs

func (*Config) UnmarshalYAML

func (c *Config) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML implements yaml.Unmarshaler.

func (*Config) Validate

func (c *Config) Validate(fs *flag.FlagSet) error

Validate validates the config, flags, and sets default values.

type Integrations

type Integrations interface {
	ApplyConfig(*VersionedIntegrations, IntegrationsGlobals) error
	WireAPI(*mux.Router)
	Stop()
}

Integrations is an abstraction over both the v1 and v2 systems.

func NewIntegrations

func NewIntegrations(logger log.Logger, cfg *VersionedIntegrations, globals IntegrationsGlobals) (Integrations, error)

NewIntegrations creates a new subsystem. globals should be provided regardless of useV2. globals.SubsystemOptions will be automatically set if cfg.Version is set to IntegrationsVersion2.

type IntegrationsGlobals

type IntegrationsGlobals = v2.Globals

IntegrationsGlobals is a global struct shared across integrations.

type IntegrationsVersion

type IntegrationsVersion int
const (
	IntegrationsVersion1 IntegrationsVersion = iota
	IntegrationsVersion2
)

type RemoteConfig

type RemoteConfig struct {
	BaseConfig    BaseConfigContent `json:"base_config" yaml:"base_config"`
	Snippets      []Snippet         `json:"snippets" yaml:"snippets"`
	AgentMetadata AgentMetadata     `json:"agent_metadata,omitempty" yaml:"agent_metadata,omitempty"`
}

func NewRemoteConfig

func NewRemoteConfig(buf []byte) (*RemoteConfig, error)

func (*RemoteConfig) BuildAgentConfig

func (rc *RemoteConfig) BuildAgentConfig() (*Config, error)

BuildAgentConfig builds an agent configuration from a base config and a list of snippets

type RemoteConfiguration

type RemoteConfiguration struct {
	Labels                 labelMap `yaml:"labels"`
	LabelManagementEnabled bool     `yaml:"label_management_enabled"`
	AcceptHTTPNotModified  bool     `yaml:"accept_http_not_modified"`
	AgentID                string   `yaml:"agent_id"`
	Namespace              string   `yaml:"namespace"`
	CacheLocation          string   `yaml:"cache_location"`
}

func (*RemoteConfiguration) UnmarshalYAML

func (rc *RemoteConfiguration) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML implement YAML Unmarshaler

type Snippet

type Snippet struct {
	// Config is the snippet of config to be included.
	Config string `json:"config" yaml:"config"`
}

Snippet is a snippet of configuration returned by the config API.

type SnippetContent

type SnippetContent struct {
	// MetricsScrapeConfigs is a YAML containing list of metrics scrape configs.
	MetricsScrapeConfigs []*pc.ScrapeConfig `yaml:"metrics_scrape_configs,omitempty"`

	// LogsScrapeConfigs is a YAML containing list of logs scrape configs.
	LogsScrapeConfigs []scrapeconfig.Config `yaml:"logs_scrape_configs,omitempty"`

	// IntegrationConfigs is a YAML containing list of integrations.
	IntegrationConfigs integrations.ManagerConfig `yaml:"integration_configs,omitempty"`
}

SnippetContent defines the internal structure of a snippet configuration.

type VersionedIntegrations

type VersionedIntegrations struct {
	Version IntegrationsVersion

	ConfigV1 *v1.ManagerConfig
	ConfigV2 *v2.SubsystemOptions

	// ExtraIntegrations is used when adding any integrations NOT in the default agent configuration
	ExtraIntegrations []v2.Config
	// contains filtered or unexported fields
}

VersionedIntegrations abstracts the subsystem configs for integrations v1 and v2. VersionedIntegrations can only be unmarshaled as part of Load.

func DefaultVersionedIntegrations

func DefaultVersionedIntegrations() VersionedIntegrations

DefaultVersionedIntegrations is the default config for integrations.

func (*VersionedIntegrations) ApplyDefaults

func (c *VersionedIntegrations) ApplyDefaults(sflags *server.Flags, mcfg *metrics.Config) error

ApplyDefaults applies defaults to the subsystem based on globals.

func (*VersionedIntegrations) EnabledIntegrations

func (c *VersionedIntegrations) EnabledIntegrations() []string

EnabledIntegrations returns a slice of enabled integrations

func (VersionedIntegrations) IsZero

func (c VersionedIntegrations) IsZero() bool

IsZero implements yaml.IsZeroer.

func (VersionedIntegrations) MarshalYAML

func (c VersionedIntegrations) MarshalYAML() (interface{}, error)

MarshalYAML implements yaml.Marshaler.

func (*VersionedIntegrations) UnmarshalYAML

func (c *VersionedIntegrations) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML implements yaml.Unmarshaler. Full unmarshaling is deferred until setVersion is invoked.

Directories

Path Synopsis
Package features enables a way to encode enabled features in a flag.FlagSet.
Package features enables a way to encode enabled features in a flag.FlagSet.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL