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 1
1
from fastapi import FastAPI
2
2
from fastapp .api .v1 .api_v1 import api_v1_router
3
3
from fastapp .core .config import settings
4
+ from fastapp .utils import setup_tracer
4
5
5
6
6
7
def get_app () -> FastAPI :
@@ -24,7 +25,7 @@ def get_app() -> FastAPI:
24
25
@app .on_event ("startup" )
25
26
async def startup_event ():
26
27
"""Gracefully start the application before the server reports readiness."""
27
- pass
28
+ setup_tracer ( app = app )
28
29
29
30
30
31
@app .on_event ("shutdown" )
Original file line number Diff line number Diff line change 1
1
import logging
2
2
from logging import Logger
3
3
4
+ from azure .monitor .opentelemetry .exporter import AzureMonitorTraceExporter
5
+ from fastapi import FastAPI
4
6
from 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
5
11
6
12
7
13
def setup_logging (module ) -> Logger :
@@ -20,3 +26,18 @@ def setup_logging(module) -> Logger:
20
26
)
21
27
logger .addHandler (logger_stream_handler )
22
28
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 5
5
azure-functions ~= 1.14.0
6
6
fastapi ~= 0.96.1
7
7
aiohttp ~= 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