Skip to content

Commit beb1696

Browse files
authored
avoid BatchLogRecordProcessor on pyodide (#873)
1 parent 50b8818 commit beb1696

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

logfire/_internal/config.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
from opentelemetry.sdk._events import EventLoggerProvider as SDKEventLoggerProvider
3333
from opentelemetry.sdk._logs import LoggerProvider as SDKLoggerProvider, LogRecordProcessor
3434
from opentelemetry.sdk._logs._internal import SynchronousMultiLogRecordProcessor
35-
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
35+
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor, SimpleLogRecordProcessor
3636
from opentelemetry.sdk.environment_variables import (
3737
OTEL_BSP_SCHEDULE_DELAY,
3838
OTEL_EXPORTER_OTLP_ENDPOINT,
@@ -932,7 +932,13 @@ def check_token():
932932
compression=Compression.Gzip,
933933
)
934934
log_exporter = QuietLogExporter(log_exporter)
935-
log_record_processors.append(BatchLogRecordProcessor(log_exporter))
935+
936+
if emscripten: # pragma: no cover
937+
# BatchLogRecordProcessor uses threads which fail in Pyodide / Emscripten
938+
logfire_log_processor = SimpleLogRecordProcessor(log_exporter)
939+
else:
940+
logfire_log_processor = BatchLogRecordProcessor(log_exporter)
941+
log_record_processors.append(logfire_log_processor)
936942

937943
if processors_with_pending_spans:
938944
pending_multiprocessor = SynchronousMultiSpanProcessor()
@@ -964,7 +970,12 @@ def check_token():
964970
metric_readers += [PeriodicExportingMetricReader(OTLPMetricExporter())]
965971

966972
if (otlp_endpoint or otlp_logs_endpoint) and otlp_logs_exporter in ('otlp', ''):
967-
log_record_processors += [BatchLogRecordProcessor(OTLPLogExporter())]
973+
if emscripten: # pragma: no cover
974+
# BatchLogRecordProcessor uses threads which fail in Pyodide / Emscripten
975+
logfire_log_processor = SimpleLogRecordProcessor(OTLPLogExporter())
976+
else:
977+
logfire_log_processor = BatchLogRecordProcessor(OTLPLogExporter())
978+
log_record_processors.append(logfire_log_processor)
968979

969980
if metric_readers is not None:
970981
meter_provider = MeterProvider(

pyodide_test/test.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,4 @@ async function findWheel(dist_dir) {
5454
}
5555
}
5656

57-
runTest().catch(console.error)
57+
runTest()

0 commit comments

Comments
 (0)