|
| 1 | +""" |
| 2 | +OpenTelemetry Logging Handler Module. |
| 3 | +
|
| 4 | +Sets up the OpenTelemetry LoggerProvider, exporter, and processor. |
| 5 | +Defines OTELHandler for Python's logging module that forwards logs |
| 6 | +to the OTEL Collector in structured format. |
| 7 | +
|
| 8 | +The code snippet below is taken from the otel python example here: |
| 9 | +https://github.com/open-telemetry/opentelemetry-python/tree/main/docs/examples/logs |
| 10 | +""" |
| 11 | + |
| 12 | +import logging |
| 13 | + |
| 14 | +from opentelemetry import trace |
| 15 | +from opentelemetry._logs import set_logger_provider |
| 16 | +from opentelemetry.exporter.otlp.proto.grpc._log_exporter import ( |
| 17 | + OTLPLogExporter, |
| 18 | +) |
| 19 | +from opentelemetry.sdk._logs import LoggerProvider, LoggingHandler |
| 20 | +from opentelemetry.sdk._logs.export import BatchLogRecordProcessor |
| 21 | +from opentelemetry.sdk.resources import Resource |
| 22 | +from opentelemetry.sdk.trace import TracerProvider |
| 23 | +from opentelemetry.sdk.trace.export import ( |
| 24 | + BatchSpanProcessor, |
| 25 | + ConsoleSpanExporter, |
| 26 | +) |
| 27 | + |
| 28 | +trace.set_tracer_provider(TracerProvider()) |
| 29 | +trace.get_tracer_provider().add_span_processor(BatchSpanProcessor(ConsoleSpanExporter())) |
| 30 | + |
| 31 | +logger_provider = LoggerProvider( |
| 32 | + resource=Resource.create( |
| 33 | + { |
| 34 | + "service.name": "rcb-discord-bot", |
| 35 | + } |
| 36 | + ), |
| 37 | +) |
| 38 | +set_logger_provider(logger_provider) |
| 39 | + |
| 40 | +exporter = OTLPLogExporter(endpoint="otel-collector:4317", insecure=True) |
| 41 | +logger_provider.add_log_record_processor(BatchLogRecordProcessor(exporter)) |
| 42 | +otel_handler = LoggingHandler(level=logging.NOTSET, logger_provider=logger_provider) |
0 commit comments