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
}