mirror of
https://github.com/SigNoz/opentelemetry-python-example.git
synced 2025-07-26 08:44:56 +08:00
34 lines
1.3 KiB
Python
34 lines
1.3 KiB
Python
def initialize_opentelemetry():
|
|
|
|
# tracing setup
|
|
from opentelemetry.trace import set_tracer_provider, get_tracer_provider
|
|
from opentelemetry.sdk.trace import TracerProvider
|
|
from opentelemetry.sdk.trace.export import BatchSpanProcessor
|
|
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
|
|
|
|
set_tracer_provider(TracerProvider())
|
|
span_processor = BatchSpanProcessor(OTLPSpanExporter())
|
|
get_tracer_provider().add_span_processor(span_processor)
|
|
|
|
# metrics setup
|
|
from opentelemetry.metrics import set_meter_provider, get_meter_provider
|
|
from opentelemetry.sdk.metrics import MeterProvider
|
|
from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader
|
|
from opentelemetry.exporter.otlp.proto.grpc.metric_exporter import OTLPMetricExporter
|
|
|
|
reader = PeriodicExportingMetricReader(
|
|
OTLPMetricExporter(),
|
|
)
|
|
set_meter_provider(MeterProvider(
|
|
metric_readers=[reader],
|
|
))
|
|
|
|
# instrumentations
|
|
from opentelemetry.instrumentation.flask import FlaskInstrumentor
|
|
from opentelemetry.instrumentation.pymongo import PymongoInstrumentor
|
|
from opentelemetry.instrumentation.requests import RequestsInstrumentor
|
|
|
|
FlaskInstrumentor().instrument()
|
|
PymongoInstrumentor().instrument()
|
|
RequestsInstrumentor().instrument()
|
|
# end of tracing setup |