func()

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()
}