in receiver/loadgenreceiver/traces.go [60:100]
func createTracesReceiver(
ctx context.Context,
set receiver.Settings,
config component.Config,
consumer consumer.Traces,
) (receiver.Traces, error) {
genConfig := config.(*Config)
parser := ptrace.JSONUnmarshaler{}
var err error
sampleTraces := demoTraces
if genConfig.Traces.JsonlFile != "" {
sampleTraces, err = os.ReadFile(string(genConfig.Traces.JsonlFile))
if err != nil {
return nil, err
}
}
var items []ptrace.Traces
scanner := bufio.NewScanner(bytes.NewReader(sampleTraces))
scanner.Buffer(make([]byte, 0, maxScannerBufSize), maxScannerBufSize)
for scanner.Scan() {
traceBytes := scanner.Bytes()
lineTraces, err := parser.UnmarshalTraces(traceBytes)
if err != nil {
return nil, err
}
items = append(items, lineTraces)
}
if err := scanner.Err(); err != nil {
return nil, err
}
return &tracesGenerator{
cfg: genConfig,
logger: set.Logger,
consumer: consumer,
samples: list.NewLoopingList(items, genConfig.Traces.MaxReplay),
}, nil
}