|
1 | | -import os |
| 1 | +from os import getenv |
2 | 2 |
|
3 | 3 | from opentelemetry import trace |
4 | 4 | from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import \ |
5 | 5 | OTLPSpanExporter |
| 6 | +from opentelemetry.instrumentation.flask import FlaskInstrumentor |
| 7 | +from opentelemetry.instrumentation.logging import LoggingInstrumentor |
6 | 8 | from opentelemetry.sdk.resources import Resource |
7 | 9 | from opentelemetry.sdk.trace import TracerProvider |
8 | 10 | from opentelemetry.sdk.trace.export import BatchSpanProcessor |
9 | 11 |
|
10 | 12 | from app.helpers.utils import strtobool |
11 | 13 |
|
12 | 14 |
|
13 | | -def setup_trace_provider(worker_pid): |
14 | | - trace.set_tracer_provider(TracerProvider(resource=Resource.create())) |
| 15 | +def initialize() -> None: |
| 16 | + if not strtobool(getenv("OTEL_SDK_DISABLED", "false")): |
| 17 | + if strtobool(getenv("OTEL_ENABLE_LOGGING", "false")): |
| 18 | + LoggingInstrumentor().instrument() |
15 | 19 |
|
16 | | - # Since we created a new tracer, the default span processor is gone. We need to |
17 | | - # create a new one using the default OTEL env variables and ad it to the tracer. |
18 | | - span_processor = BatchSpanProcessor( |
19 | | - OTLPSpanExporter( |
20 | | - endpoint=os.getenv('OTEL_EXPORTER_OTLP_ENDPOINT', "http://localhost:4317"), |
21 | | - headers=os.getenv('OTEL_EXPORTER_OTLP_HEADERS'), |
22 | | - insecure=strtobool(os.getenv('OTEL_EXPORTER_OTLP_INSECURE', "false")) |
| 20 | + |
| 21 | +def initialize_flask(app): |
| 22 | + if not strtobool(getenv("OTEL_SDK_DISABLED", "false")): |
| 23 | + if strtobool(getenv("OTEL_ENABLE_FLASK", "false")): |
| 24 | + FlaskInstrumentor().instrument_app(app) |
| 25 | + |
| 26 | + |
| 27 | +def setup_trace_provider(): |
| 28 | + if not strtobool(getenv("OTEL_SDK_DISABLED", "false")): |
| 29 | + # Since we created a new tracer, the default span processor is gone. We need to |
| 30 | + # create a new one using the default OTEL env variables and ad it to the tracer. |
| 31 | + span_processor = BatchSpanProcessor( |
| 32 | + OTLPSpanExporter( |
| 33 | + endpoint=getenv('OTEL_EXPORTER_OTLP_ENDPOINT', "http://localhost:4317"), |
| 34 | + headers=getenv('OTEL_EXPORTER_OTLP_HEADERS'), |
| 35 | + insecure=strtobool(getenv('OTEL_EXPORTER_OTLP_INSECURE', "false")) |
| 36 | + ) |
23 | 37 | ) |
24 | | - ) |
25 | | - trace.get_tracer_provider().add_span_processor(span_processor) |
| 38 | + |
| 39 | + provider = TracerProvider(resource=Resource.create()) |
| 40 | + provider.add_span_processor(span_processor) |
| 41 | + trace.set_tracer_provider(provider) |
0 commit comments