File tree Expand file tree Collapse file tree 3 files changed +25
-1
lines changed Expand file tree Collapse file tree 3 files changed +25
-1
lines changed Original file line number Diff line number Diff line change 11from fastapi import FastAPI
22from fastapp .api .v1 .api_v1 import api_v1_router
33from fastapp .core .config import settings
4+ from fastapp .utils import setup_tracer
45
56
67def get_app () -> FastAPI :
@@ -24,7 +25,7 @@ def get_app() -> FastAPI:
2425@app .on_event ("startup" )
2526async def startup_event ():
2627 """Gracefully start the application before the server reports readiness."""
27- pass
28+ setup_tracer ( app = app )
2829
2930
3031@app .on_event ("shutdown" )
Original file line number Diff line number Diff line change 11import logging
22from logging import Logger
33
4+ from azure .monitor .opentelemetry .exporter import AzureMonitorTraceExporter
5+ from fastapi import FastAPI
46from fastapp .core .config import settings
7+ from opentelemetry .instrumentation .fastapi import FastAPIInstrumentor
8+ from opentelemetry .sdk .resources import SERVICE_NAME , Resource
9+ from opentelemetry .sdk .trace import TracerProvider
10+ from opentelemetry .sdk .trace .export import BatchSpanProcessor
511
612
713def setup_logging (module ) -> Logger :
@@ -20,3 +26,18 @@ def setup_logging(module) -> Logger:
2026 )
2127 logger .addHandler (logger_stream_handler )
2228 return logger
29+
30+
31+ def setup_tracer (app : FastAPI ):
32+ """Setup tracer for Open Telemetry.
33+
34+ app (FastAPI): The app to be instrumented by Open Telemetry.
35+ RETURNS (None): Nothing is being returned.
36+ """
37+ if settings .APPLICATIONINSIGHTS_CONNECTION_STRING :
38+ exporter = AzureMonitorTraceExporter .from_connection_string (
39+ settings .APPLICATIONINSIGHTS_CONNECTION_STRING
40+ )
41+ tracer = TracerProvider (resource = Resource ({SERVICE_NAME : "api" }))
42+ tracer .add_span_processor (BatchSpanProcessor (exporter ))
43+ FastAPIInstrumentor .instrument_app (app , tracer_provider = tracer )
Original file line number Diff line number Diff line change 55azure-functions ~= 1.14.0
66fastapi ~= 0.96.1
77aiohttp ~= 3.8.4
8+ opentelemetry-instrumentation-fastapi == 0.39b0
9+ azure-monitor-opentelemetry-exporter == 1.0.0b14
You can’t perform that action at this time.
0 commit comments