func()

in internal/processorexecutor.go [149:184]


func (p *processorExecutor[C]) ExecuteTraceStatements(yamlConfig, input string) ([]byte, error) {
	config, err := p.parseConfig(yamlConfig)
	if err != nil {
		return nil, err
	}

	transformedTraces := ptrace.NewTraces()
	tracesConsumer, _ := consumer.NewTraces(func(_ context.Context, ld ptrace.Traces) error {
		transformedTraces = ld
		return nil
	})

	tracesProcessor, err := p.factory.CreateTraces(context.Background(), p.settings, config, tracesConsumer)
	if err != nil {
		return nil, err
	}

	tracesUnmarshaler := &ptrace.JSONUnmarshaler{}
	inputTraces, err := tracesUnmarshaler.UnmarshalTraces([]byte(input))
	if err != nil {
		return nil, err
	}

	err = tracesProcessor.ConsumeTraces(context.Background(), inputTraces)
	if err != nil {
		return nil, err
	}

	tracesMarshaler := ptrace.JSONMarshaler{}
	json, err := tracesMarshaler.MarshalTraces(transformedTraces)
	if err != nil {
		return nil, err
	}

	return json, nil
}