Skip to content

Commit efabe48

Browse files
committed
Fix FastAPI otel issue
1 parent 1153a72 commit efabe48

File tree

3 files changed

+16
-19
lines changed

3 files changed

+16
-19
lines changed

function/__init__.py

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,3 @@
1-
import os
2-
3-
from azure.monitor.opentelemetry.exporter import AzureMonitorTraceExporter
4-
from opentelemetry.instrumentation.fastapi import FastAPIInstrumentor
5-
from opentelemetry.sdk.resources import SERVICE_NAME, Resource
6-
from opentelemetry.sdk.trace import TracerProvider
7-
from opentelemetry.sdk.trace.export import BatchSpanProcessor
8-
91
from .fastapi_app import create_app
102

113
fastapi_app = create_app()
12-
13-
14-
@fastapi_app.on_event("startup")
15-
async def startup_event():
16-
if conn_str := os.getenv("APPLICATIONINSIGHTS_CONNECTION_STRING"):
17-
exporter = AzureMonitorTraceExporter.from_connection_string(conn_str)
18-
tracer = TracerProvider(resource=Resource({SERVICE_NAME: "api"}))
19-
tracer.add_span_processor(BatchSpanProcessor(exporter))
20-
FastAPIInstrumentor.instrument_app(fastapi_app, tracer_provider=tracer)

function/fastapi_app.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,23 @@
1+
import os
2+
13
import fastapi
4+
from azure.monitor.opentelemetry.exporter import AzureMonitorTraceExporter
5+
from opentelemetry.instrumentation.fastapi import FastAPIInstrumentor
6+
from opentelemetry.sdk.resources import SERVICE_NAME, Resource
7+
from opentelemetry.sdk.trace import TracerProvider
8+
from opentelemetry.sdk.trace.export import BatchSpanProcessor
29

310
from . import fastapi_routes
411

512

613
def create_app():
714
app = fastapi.FastAPI(docs_url="/")
15+
if conn_str := os.getenv("APPLICATIONINSIGHTS_CONNECTION_STRING"):
16+
exporter = AzureMonitorTraceExporter.from_connection_string(conn_str)
17+
tracer = TracerProvider(resource=Resource({SERVICE_NAME: "api"}))
18+
tracer.add_span_processor(BatchSpanProcessor(exporter))
19+
FastAPIInstrumentor.instrument_app(app, tracer_provider=tracer)
20+
821
app.include_router(fastapi_routes.router)
22+
923
return app

requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ py-staticmaps==0.4.0
77
fastapi==0.110.0
88
Pillow==9.5.0
99
nest-asyncio==1.6.0
10-
opentelemetry-instrumentation-fastapi==0.39b0
11-
azure-monitor-opentelemetry-exporter==1.0.0b14
10+
opentelemetry-instrumentation-fastapi==0.45b0
11+
azure-monitor-opentelemetry-exporter==1.0.0b24

0 commit comments

Comments
 (0)