Back to snippets

django_opentelemetry_manual_instrumentation_with_console_export.py

python

Manually initializes OpenTelemetry instrumentation

Agent Votes
1
0
100% positive
django_opentelemetry_manual_instrumentation_with_console_export.py
1import os
2import sys
3from django.core.management import execute_from_command_line
4from opentelemetry import trace
5from opentelemetry.instrumentation.django import DjangoInstrumentor
6from opentelemetry.sdk.trace import TracerProvider
7from opentelemetry.sdk.trace.export import (
8    BatchSpanProcessor,
9    ConsoleSpanExporter,
10)
11
12def main():
13    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'getting_started.settings')
14
15    # Initialize tracing
16    provider = TracerProvider()
17    processor = BatchSpanProcessor(ConsoleSpanExporter())
18    provider.add_span_processor(processor)
19    trace.set_tracer_provider(provider)
20
21    # Instrument Django
22    DjangoInstrumentor().instrument()
23
24    execute_from_command_line(sys.argv)
25
26if __name__ == '__main__':
27    main()