314
*/
315
export function* iterateOtlpLogRecords(payload: unknown): IterableIterator<IOtlpLogRecord> {
317
return;
318
}
319
>
const resourceLogs = (payload as { resourceLogs?: unknown }).resourceLogs;
otlpLogEmitter.ts
320
>
if (!Array.isArray(resourceLogs)) {
321
return;
322
}
324
>
if (!resourceLog || typeof resourceLog !== 'object') {
325
continue;
326
}
327
>
const scopeLogs = (resourceLog as { scopeLogs?: unknown }).scopeLogs;
otlpLogEmitter.ts
328
>
if (!Array.isArray(scopeLogs)) {
329
continue;
330
}
332
>
if (!scopeLog || typeof scopeLog !== 'object') {
333
continue;
334
}
335
>
const logRecords = (scopeLog as { logRecords?: unknown }).logRecords;
otlpLogEmitter.ts
336
>
if (!Array.isArray(logRecords)) {
337
continue;
338
}
340
>
const record = coerceLogRecord(raw);
341
>
if (record) {
342
>
yield record;
343
>
}
344
>
}
345
>
}
346
>
}
347
>
}
348
349
>
function coerceLogRecord(raw: unknown): IOtlpLogRecord | undefined {
otlpLogEmitter.ts
350
>
if (!raw || typeof raw !== 'object') {
351
return undefined;
352
}
354
>
const severityNumber = typeof r.severityNumber === 'number' ? r.severityNumber : 0;
355
>
const severityTextRaw = typeof r.severityText === 'string' ? r.severityText.toLowerCase() : '';
356
>
const severityText = parseOtlpLogLevel(severityTextRaw) ?? severityNameFromNumber(severityNumber);
357
>
const timeUnixNano = typeof r.timeUnixNano === 'string'
358
? r.timeUnixNano
359
: typeof r.observedTimeUnixNano === 'string' ? r.observedTimeUnixNano : '0';
361
>
const attributes = otlpToAttributes(r.attributes);
362
>
return attributes
363
? { timeUnixNano, severityNumber, severityText, body, attributes }
364
: { timeUnixNano, severityNumber, severityText, body };
366
367
/**