in pkg/integrations/rawtemplate.go [59:96]
func (t *RawTemplate) Resolve(ctx context.Context, params map[string]any, pipelines []pipeline.ID) (*Config, error) {
selectedPipelines := t.source.Pipelines
if len(pipelines) > 0 {
var err error
selectedPipelines, err = selectComponents(t.source.Pipelines, pipelines)
if err != nil {
return nil, fmt.Errorf("selecting pipelines: %v", err)
}
}
selectedReceivers, err := selectComponents(t.source.Receivers, listReceivers(selectedPipelines))
if err != nil {
return nil, fmt.Errorf("selecting receivers: %v", err)
}
selectedProcessors, err := selectComponents(t.source.Processors, listProcessors(selectedPipelines))
if err != nil {
return nil, fmt.Errorf("selecting processors: %v", err)
}
rawConfig := rawYAMLConfig{
Pipelines: selectedPipelines,
Receivers: selectedReceivers,
Processors: selectedProcessors,
}
resolver, err := newResolver(rawConfig, params)
if err != nil {
return nil, err
}
conf, err := resolver.Resolve(ctx)
if err != nil {
return nil, err
}
var config Config
if err := conf.Unmarshal(&config); err != nil {
return nil, fmt.Errorf("failed to generate effective configuration: %w", err)
}
return &config, config.validate()
}