Documentation
¶
Overview ¶
Package config implements loading of configuration from Viper configuration. The implementation relies on registered factories that allow creating default configuration for each type of receiver/exporter/processor.
Index ¶
- func DecodeTypeAndName(key string) (typeStr, fullName string, err error)
- func Load(v *viper.Viper, factories Factories) (*configmodels.Config, error)
- func LoadConfigFile(t *testing.T, fileName string, factories Factories) (*configmodels.Config, error)
- func LoadReceiver(receiverKey string, v *viper.Viper, ...) (configmodels.Receiver, error)
- func NewViper() *viper.Viper
- func ValidateConfig(cfg *configmodels.Config, logger *zap.Logger) error
- type ExampleExporter
- type ExampleExporterConsumer
- func (exp *ExampleExporterConsumer) ConsumeMetricsData(ctx context.Context, md consumerdata.MetricsData) error
- func (exp *ExampleExporterConsumer) ConsumeTraceData(ctx context.Context, td consumerdata.TraceData) error
- func (exp *ExampleExporterConsumer) Name() string
- func (exp *ExampleExporterConsumer) Shutdown() error
- func (exp *ExampleExporterConsumer) Start(host component.Host) error
- type ExampleExporterFactory
- func (f *ExampleExporterFactory) CreateDefaultConfig() configmodels.Exporter
- func (f *ExampleExporterFactory) CreateMetricsExporter(logger *zap.Logger, cfg configmodels.Exporter) (component.MetricsExporterOld, error)
- func (f *ExampleExporterFactory) CreateTraceExporter(logger *zap.Logger, cfg configmodels.Exporter) (component.TraceExporterOld, error)
- func (f *ExampleExporterFactory) Type() string
- type ExampleExtension
- type ExampleExtensionFactory
- type ExampleProcessor
- type ExampleProcessorFactory
- func (f *ExampleProcessorFactory) CreateDefaultConfig() configmodels.Processor
- func (f *ExampleProcessorFactory) CreateMetricsProcessor(logger *zap.Logger, nextConsumer consumer.MetricsConsumerOld, ...) (component.MetricsProcessorOld, error)
- func (f *ExampleProcessorFactory) CreateTraceProcessor(logger *zap.Logger, nextConsumer consumer.TraceConsumerOld, ...) (component.TraceProcessorOld, error)
- func (f *ExampleProcessorFactory) Type() string
- type ExampleReceiver
- type ExampleReceiverFactory
- func (f *ExampleReceiverFactory) CreateDefaultConfig() configmodels.Receiver
- func (f *ExampleReceiverFactory) CreateMetricsReceiver(logger *zap.Logger, cfg configmodels.Receiver, ...) (component.MetricsReceiver, error)
- func (f *ExampleReceiverFactory) CreateTraceReceiver(ctx context.Context, logger *zap.Logger, cfg configmodels.Receiver, ...) (component.TraceReceiver, error)
- func (f *ExampleReceiverFactory) CustomUnmarshaler() component.CustomUnmarshaler
- func (f *ExampleReceiverFactory) Type() string
- type ExampleReceiverProducer
- type Factories
- type MultiProtoReceiver
- type MultiProtoReceiverFactory
- func (f *MultiProtoReceiverFactory) CreateDefaultConfig() configmodels.Receiver
- func (f *MultiProtoReceiverFactory) CreateMetricsReceiver(logger *zap.Logger, cfg configmodels.Receiver, ...) (component.MetricsReceiver, error)
- func (f *MultiProtoReceiverFactory) CreateTraceReceiver(ctx context.Context, logger *zap.Logger, cfg configmodels.Receiver, ...) (component.TraceReceiver, error)
- func (f *MultiProtoReceiverFactory) CustomUnmarshaler() component.CustomUnmarshaler
- func (f *MultiProtoReceiverFactory) Type() string
- type MultiProtoReceiverOneCfg
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DecodeTypeAndName ¶ added in v0.2.8
DecodeTypeAndName decodes a key in type[/name] format into type and fullName. fullName is the key normalized such that type and name components have spaces trimmed. The "type" part must be present, the forward slash and "name" are optional. typeStr will be non-empty if err is nil.
func LoadConfigFile ¶
func LoadConfigFile(t *testing.T, fileName string, factories Factories) (*configmodels.Config, error)
LoadConfigFile loads a config from file.
func LoadReceiver ¶ added in v0.2.8
func LoadReceiver(receiverKey string, v *viper.Viper, factories map[string]component.ReceiverFactoryBase) (configmodels.Receiver, error)
LoadReceiver loads a receiver config from v under the subkey receiverKey using the provided factories.
func NewViper ¶ added in v0.2.9
Creates a new Viper instance with a different key-delimitor "::" instead of the default ".". This way configs can have keys that contain ".".
func ValidateConfig ¶ added in v0.2.8
func ValidateConfig(cfg *configmodels.Config, logger *zap.Logger) error
ValidateConfig validates config.
Types ¶
type ExampleExporter ¶
type ExampleExporter struct { configmodels.ExporterSettings `mapstructure:",squash"` // squash ensures fields are correctly decoded in embedded struct ExtraInt int32 `mapstructure:"extra_int"` ExtraSetting string `mapstructure:"extra"` ExtraMapSetting map[string]string `mapstructure:"extra_map"` ExtraListSetting []string `mapstructure:"extra_list"` ExporterShutdown bool }
ExampleExporter is for testing purposes. We are defining an example config and factory for "exampleexporter" exporter type.
type ExampleExporterConsumer ¶
type ExampleExporterConsumer struct { Traces []consumerdata.TraceData Metrics []consumerdata.MetricsData ExporterStarted bool ExporterShutdown bool }
ExampleExporterConsumer stores consumed traces and metrics for testing purposes.
func (*ExampleExporterConsumer) ConsumeMetricsData ¶
func (exp *ExampleExporterConsumer) ConsumeMetricsData(ctx context.Context, md consumerdata.MetricsData) error
ConsumeMetricsData receives consumerdata.MetricsData for processing by the MetricsConsumer.
func (*ExampleExporterConsumer) ConsumeTraceData ¶
func (exp *ExampleExporterConsumer) ConsumeTraceData(ctx context.Context, td consumerdata.TraceData) error
ConsumeTraceData receives consumerdata.TraceData for processing by the TraceConsumer.
func (*ExampleExporterConsumer) Name ¶
func (exp *ExampleExporterConsumer) Name() string
Name returns the name of the exporter.
func (*ExampleExporterConsumer) Shutdown ¶
func (exp *ExampleExporterConsumer) Shutdown() error
Shutdown is invoked during shutdown.
func (*ExampleExporterConsumer) Start ¶ added in v0.2.2
func (exp *ExampleExporterConsumer) Start(host component.Host) error
Start tells the exporter to start. The exporter may prepare for exporting by connecting to the endpoint. Host parameter can be used for communicating with the host after Start() has already returned.
type ExampleExporterFactory ¶
type ExampleExporterFactory struct { }
ExampleExporterFactory is factory for ExampleExporter.
func (*ExampleExporterFactory) CreateDefaultConfig ¶
func (f *ExampleExporterFactory) CreateDefaultConfig() configmodels.Exporter
CreateDefaultConfig creates the default configuration for the Exporter.
func (*ExampleExporterFactory) CreateMetricsExporter ¶
func (f *ExampleExporterFactory) CreateMetricsExporter(logger *zap.Logger, cfg configmodels.Exporter) (component.MetricsExporterOld, error)
CreateMetricsExporter creates a metrics exporter based on this config.
func (*ExampleExporterFactory) CreateTraceExporter ¶
func (f *ExampleExporterFactory) CreateTraceExporter(logger *zap.Logger, cfg configmodels.Exporter) (component.TraceExporterOld, error)
CreateTraceExporter creates a trace exporter based on this config.
func (*ExampleExporterFactory) Type ¶
func (f *ExampleExporterFactory) Type() string
Type gets the type of the Exporter config created by this factory.
type ExampleExtension ¶
type ExampleExtension struct { configmodels.ExtensionSettings `mapstructure:",squash"` // squash ensures fields are correctly decoded in embedded struct ExtraSetting string `mapstructure:"extra"` ExtraMapSetting map[string]string `mapstructure:"extra_map"` ExtraListSetting []string `mapstructure:"extra_list"` }
ExampleExtension is for testing purposes. We are defining an example config and factory for "exampleextension" extension type.
type ExampleExtensionFactory ¶
type ExampleExtensionFactory struct { }
ExampleExtensionFactory is factory for ExampleExtension.
func (*ExampleExtensionFactory) CreateDefaultConfig ¶
func (f *ExampleExtensionFactory) CreateDefaultConfig() configmodels.Extension
CreateDefaultConfig creates the default configuration for the Extension.
func (*ExampleExtensionFactory) CreateExtension ¶
func (f *ExampleExtensionFactory) CreateExtension( logger *zap.Logger, cfg configmodels.Extension, ) (component.ServiceExtension, error)
CreateExtension creates an Extension based on this config.
func (*ExampleExtensionFactory) Type ¶
func (f *ExampleExtensionFactory) Type() string
Type gets the type of the Extension config created by this factory.
type ExampleProcessor ¶
type ExampleProcessor struct { configmodels.ProcessorSettings `mapstructure:",squash"` // squash ensures fields are correctly decoded in embedded struct ExtraSetting string `mapstructure:"extra"` ExtraMapSetting map[string]string `mapstructure:"extra_map"` ExtraListSetting []string `mapstructure:"extra_list"` }
ExampleProcessor is for testing purposes. We are defining an example config and factory for "exampleprocessor" processor type.
type ExampleProcessorFactory ¶
type ExampleProcessorFactory struct { }
ExampleProcessorFactory is factory for ExampleProcessor.
func (*ExampleProcessorFactory) CreateDefaultConfig ¶
func (f *ExampleProcessorFactory) CreateDefaultConfig() configmodels.Processor
CreateDefaultConfig creates the default configuration for the Processor.
func (*ExampleProcessorFactory) CreateMetricsProcessor ¶
func (f *ExampleProcessorFactory) CreateMetricsProcessor( logger *zap.Logger, nextConsumer consumer.MetricsConsumerOld, cfg configmodels.Processor, ) (component.MetricsProcessorOld, error)
CreateMetricsProcessor creates a metrics processor based on this config.
func (*ExampleProcessorFactory) CreateTraceProcessor ¶
func (f *ExampleProcessorFactory) CreateTraceProcessor( logger *zap.Logger, nextConsumer consumer.TraceConsumerOld, cfg configmodels.Processor, ) (component.TraceProcessorOld, error)
CreateTraceProcessor creates a trace processor based on this config.
func (*ExampleProcessorFactory) Type ¶
func (f *ExampleProcessorFactory) Type() string
Type gets the type of the Processor config created by this factory.
type ExampleReceiver ¶
type ExampleReceiver struct { configmodels.ReceiverSettings `mapstructure:",squash"` // squash ensures fields are correctly decoded in embedded struct ExtraSetting string `mapstructure:"extra"` ExtraMapSetting map[string]string `mapstructure:"extra_map"` ExtraListSetting []string `mapstructure:"extra_list"` // FailTraceCreation causes CreateTraceReceiver to fail. Useful for testing. FailTraceCreation bool `mapstructure:"-"` // FailMetricsCreation causes CreateTraceReceiver to fail. Useful for testing. FailMetricsCreation bool `mapstructure:"-"` }
ExampleReceiver is for testing purposes. We are defining an example config and factory for "examplereceiver" receiver type.
type ExampleReceiverFactory ¶
type ExampleReceiverFactory struct { }
ExampleReceiverFactory is factory for ExampleReceiver.
func (*ExampleReceiverFactory) CreateDefaultConfig ¶
func (f *ExampleReceiverFactory) CreateDefaultConfig() configmodels.Receiver
CreateDefaultConfig creates the default configuration for the Receiver.
func (*ExampleReceiverFactory) CreateMetricsReceiver ¶
func (f *ExampleReceiverFactory) CreateMetricsReceiver( logger *zap.Logger, cfg configmodels.Receiver, nextConsumer consumer.MetricsConsumerOld, ) (component.MetricsReceiver, error)
CreateMetricsReceiver creates a metrics receiver based on this config.
func (*ExampleReceiverFactory) CreateTraceReceiver ¶
func (f *ExampleReceiverFactory) CreateTraceReceiver( ctx context.Context, logger *zap.Logger, cfg configmodels.Receiver, nextConsumer consumer.TraceConsumerOld, ) (component.TraceReceiver, error)
CreateTraceReceiver creates a trace receiver based on this config.
func (*ExampleReceiverFactory) CustomUnmarshaler ¶
func (f *ExampleReceiverFactory) CustomUnmarshaler() component.CustomUnmarshaler
CustomUnmarshaler returns nil because we don't need custom unmarshaling for this factory.
func (*ExampleReceiverFactory) Type ¶
func (f *ExampleReceiverFactory) Type() string
Type gets the type of the Receiver config created by this factory.
type ExampleReceiverProducer ¶
type ExampleReceiverProducer struct { TraceConsumer consumer.TraceConsumerOld Started bool Stopped bool MetricsConsumer consumer.MetricsConsumerOld }
ExampleReceiverProducer allows producing traces and metrics for testing purposes.
func (*ExampleReceiverProducer) Shutdown ¶ added in v0.2.2
func (erp *ExampleReceiverProducer) Shutdown() error
Shutdown tells the receiver that should stop reception,
type Factories ¶
type Factories struct { // Receivers maps receiver type names in the config to the respective factory. Receivers map[string]component.ReceiverFactoryBase // Processors maps processor type names in the config to the respective factory. Processors map[string]component.ProcessorFactoryBase // Exporters maps exporter type names in the config to the respective factory. Exporters map[string]component.ExporterFactoryBase // Extensions maps extension type names in the config to the respective factory. Extensions map[string]component.ExtensionFactory }
Factories struct holds in a single type all component factories that can be handled by the Config.
func ExampleComponents ¶
ExampleComponents registers example factories. This is only used by tests.
type MultiProtoReceiver ¶
type MultiProtoReceiver struct { TypeVal string `mapstructure:"-"` NameVal string `mapstructure:"-"` Protocols map[string]MultiProtoReceiverOneCfg `mapstructure:"protocols"` }
MultiProtoReceiver is for testing purposes. We are defining an example multi protocol config and factory for "multireceiver" receiver type.
func (*MultiProtoReceiver) IsEnabled ¶
func (rs *MultiProtoReceiver) IsEnabled() bool
IsEnabled returns true if the entity is enabled.
func (*MultiProtoReceiver) Name ¶
func (rs *MultiProtoReceiver) Name() string
Name gets the exporter name.
func (*MultiProtoReceiver) SetName ¶
func (rs *MultiProtoReceiver) SetName(name string)
SetName sets the receiver name.
func (*MultiProtoReceiver) SetType ¶
func (rs *MultiProtoReceiver) SetType(typeStr string)
SetType sets the receiver type.
func (*MultiProtoReceiver) Type ¶
func (rs *MultiProtoReceiver) Type() string
Type sets the receiver type.
type MultiProtoReceiverFactory ¶
type MultiProtoReceiverFactory struct { }
MultiProtoReceiverFactory is factory for MultiProtoReceiver.
func (*MultiProtoReceiverFactory) CreateDefaultConfig ¶
func (f *MultiProtoReceiverFactory) CreateDefaultConfig() configmodels.Receiver
CreateDefaultConfig creates the default configuration for the Receiver.
func (*MultiProtoReceiverFactory) CreateMetricsReceiver ¶
func (f *MultiProtoReceiverFactory) CreateMetricsReceiver( logger *zap.Logger, cfg configmodels.Receiver, consumer consumer.MetricsConsumerOld, ) (component.MetricsReceiver, error)
CreateMetricsReceiver creates a metrics receiver based on this config.
func (*MultiProtoReceiverFactory) CreateTraceReceiver ¶
func (f *MultiProtoReceiverFactory) CreateTraceReceiver( ctx context.Context, logger *zap.Logger, cfg configmodels.Receiver, nextConsumer consumer.TraceConsumerOld, ) (component.TraceReceiver, error)
CreateTraceReceiver creates a trace receiver based on this config.
func (*MultiProtoReceiverFactory) CustomUnmarshaler ¶
func (f *MultiProtoReceiverFactory) CustomUnmarshaler() component.CustomUnmarshaler
CustomUnmarshaler returns nil because we don't need custom unmarshaling for this factory.
func (*MultiProtoReceiverFactory) Type ¶
func (f *MultiProtoReceiverFactory) Type() string
Type gets the type of the Receiver config created by this factory.
type MultiProtoReceiverOneCfg ¶
type MultiProtoReceiverOneCfg struct { Disabled bool `mapstructure:"disabled"` Endpoint string `mapstructure:"endpoint"` ExtraSetting string `mapstructure:"extra"` }
MultiProtoReceiverOneCfg is multi proto receiver config.
Directories
¶
Path | Synopsis |
---|---|
Package configcheck has checks to be applied to configuration objects implemented by factories of components used in the OpenTelemetry collector.
|
Package configcheck has checks to be applied to configuration objects implemented by factories of components used in the OpenTelemetry collector. |
Package configerror contains the common errors caused by malformed configs.
|
Package configerror contains the common errors caused by malformed configs. |
Package configgrpc defines the gRPC configuration settings.
|
Package configgrpc defines the gRPC configuration settings. |
Package configmodels defines the data models for entities.
|
Package configmodels defines the data models for entities. |