in receiver/loadgenreceiver/logs.go [58:98]
func createLogsReceiver(
ctx context.Context,
set receiver.Settings,
config component.Config,
consumer consumer.Logs,
) (receiver.Logs, error) {
genConfig := config.(*Config)
parser := plog.JSONUnmarshaler{}
var err error
sampleLogs := demoLogs
if genConfig.Logs.JsonlFile != "" {
sampleLogs, err = os.ReadFile(string(genConfig.Logs.JsonlFile))
if err != nil {
return nil, err
}
}
var items []plog.Logs
scanner := bufio.NewScanner(bytes.NewReader(sampleLogs))
scanner.Buffer(make([]byte, 0, maxScannerBufSize), maxScannerBufSize)
for scanner.Scan() {
logBytes := scanner.Bytes()
lineLogs, err := parser.UnmarshalLogs(logBytes)
if err != nil {
return nil, err
}
items = append(items, lineLogs)
}
if err := scanner.Err(); err != nil {
return nil, err
}
return &logsGenerator{
cfg: genConfig,
logger: set.Logger,
consumer: consumer,
samples: list.NewLoopingList(items, genConfig.Logs.MaxReplay),
}, nil
}