Skip to content

Commit 1e4583e

Browse files
committed
propagate fastapi instrumentatoin
1 parent cf09512 commit 1e4583e

File tree

14 files changed

+40
-18
lines changed

14 files changed

+40
-18
lines changed

packages/service-library/src/servicelib/fastapi/tracing.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,11 +203,16 @@ def _shutdown(tracing_data: TracingData) -> None:
203203

204204

205205
def initialize_fastapi_app_tracing(
206-
app: FastAPI, *, add_response_trace_id_header: bool = False
206+
app: FastAPI,
207+
*,
208+
tracing_data: TracingData,
209+
add_response_trace_id_header: bool = False,
207210
):
208211
if add_response_trace_id_header:
209212
app.add_middleware(ResponseTraceIdHeaderMiddleware)
210-
FastAPIInstrumentor.instrument_app(app)
213+
FastAPIInstrumentor.instrument_app(
214+
app, tracer_provider=tracing_data.tracer_provider
215+
)
211216

212217

213218
def setup_httpx_client_tracing(client: AsyncClient | Client):

packages/service-library/tests/fastapi/test_tracing.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,9 @@ async def handler(handler_data: dict):
241241
tracing_settings=tracing_settings,
242242
tracing_data=tracing_data,
243243
)(app=mocked_app):
244-
initialize_fastapi_app_tracing(mocked_app, add_response_trace_id_header=True)
244+
initialize_fastapi_app_tracing(
245+
mocked_app, tracing_data=tracing_data, add_response_trace_id_header=True
246+
)
245247
client = TestClient(mocked_app)
246248
response = client.get("/")
247249
assert _OSPARC_TRACE_ID_HEADER in response.headers
@@ -294,7 +296,9 @@ async def handler(handler_data: dict):
294296
tracing_settings=tracing_settings,
295297
tracing_data=tracing_data,
296298
)(app=mocked_app):
297-
initialize_fastapi_app_tracing(mocked_app, add_response_trace_id_header=True)
299+
initialize_fastapi_app_tracing(
300+
mocked_app, tracing_data=tracing_data, add_response_trace_id_header=True
301+
)
298302
client = TestClient(mocked_app)
299303
_ = client.get("/")
300304
trace_id = handler_data.get(_OSPARC_TRACE_ID_HEADER)
@@ -344,7 +348,9 @@ async def handler():
344348
tracing_settings=tracing_settings,
345349
tracing_data=tracing_data,
346350
)(app=mocked_app):
347-
initialize_fastapi_app_tracing(mocked_app, add_response_trace_id_header=True)
351+
initialize_fastapi_app_tracing(
352+
mocked_app, tracing_data=tracing_data, add_response_trace_id_header=True
353+
)
348354
client = TestClient(mocked_app)
349355
for _ in range(n_requests):
350356
client.get("/")

services/agent/src/simcore_service_agent/core/application.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
override_fastapi_openapi_method,
88
)
99
from servicelib.fastapi.tracing import (
10+
get_tracing_data,
1011
initialize_fastapi_app_tracing,
1112
setup_tracing,
1213
)
@@ -62,7 +63,7 @@ def create_app(settings: ApplicationSettings | None = None) -> FastAPI:
6263
setup_rpc_api_routes(app)
6364

6465
if settings.AGENT_TRACING:
65-
initialize_fastapi_app_tracing(app)
66+
initialize_fastapi_app_tracing(app, tracing_data=get_tracing_data(app))
6667

6768
async def _on_startup() -> None:
6869
print(APP_STARTED_BANNER_MSG, flush=True) # noqa: T201

services/catalog/src/simcore_service_catalog/core/application.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
)
1212
from servicelib.fastapi.openapi import override_fastapi_openapi_method
1313
from servicelib.fastapi.tracing import (
14+
get_tracing_data,
1415
initialize_fastapi_app_tracing,
1516
setup_tracing,
1617
)
@@ -60,12 +61,12 @@ def create_app(
6061

6162
# MIDDLEWARES
6263
if settings.CATALOG_TRACING:
63-
setup_tracing(app, settings.CATALOG_TRACING, APP_NAME)
64+
setup_tracing(app, settings.CATALOG_TRACING, service_name=APP_NAME)
6465
if settings.CATALOG_PROMETHEUS_INSTRUMENTATION_ENABLED:
6566
setup_prometheus_instrumentation(app)
6667

6768
if settings.CATALOG_TRACING:
68-
initialize_fastapi_app_tracing(app)
69+
initialize_fastapi_app_tracing(app, tracing_data=get_tracing_data(app))
6970

7071
if settings.SC_BOOT_MODE != BootModeEnum.PRODUCTION:
7172
# middleware to time requests (ONLY for development)

services/clusters-keeper/src/simcore_service_clusters_keeper/core/application.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
setup_prometheus_instrumentation,
66
)
77
from servicelib.fastapi.tracing import (
8+
get_tracing_data,
89
initialize_fastapi_app_tracing,
910
setup_tracing,
1011
)
@@ -64,7 +65,7 @@ def create_app(settings: ApplicationSettings) -> FastAPI:
6465
setup_clusters_management(app)
6566

6667
if app.state.settings.CLUSTERS_KEEPER_TRACING:
67-
initialize_fastapi_app_tracing(app)
68+
initialize_fastapi_app_tracing(app, tracing_data=get_tracing_data(app))
6869
# ERROR HANDLERS
6970

7071
# EVENTS

services/datcore-adapter/src/simcore_service_datcore_adapter/core/application.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
)
1212
from servicelib.fastapi.openapi import override_fastapi_openapi_method
1313
from servicelib.fastapi.tracing import (
14+
get_tracing_data,
1415
initialize_fastapi_app_tracing,
1516
setup_tracing,
1617
)
@@ -63,7 +64,7 @@ def create_app(settings: ApplicationSettings) -> FastAPI:
6364
app.add_middleware(GZipMiddleware)
6465

6566
if app.state.settings.DATCORE_ADAPTER_TRACING:
66-
initialize_fastapi_app_tracing(app)
67+
initialize_fastapi_app_tracing(app, tracing_data=get_tracing_data(app))
6768

6869
# events
6970
app.add_event_handler("startup", on_startup)

services/director-v2/src/simcore_service_director_v2/core/application.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
)
1414
from servicelib.fastapi.profiler import initialize_profiler
1515
from servicelib.fastapi.tracing import (
16+
get_tracing_data,
1617
initialize_fastapi_app_tracing,
1718
setup_tracing,
1819
)
@@ -199,7 +200,7 @@ def create_app( # noqa: C901, PLR0912
199200
db.setup(app, settings.POSTGRES)
200201

201202
if settings.DIRECTOR_V2_TRACING:
202-
initialize_fastapi_app_tracing(app)
203+
initialize_fastapi_app_tracing(app, tracing_data=get_tracing_data(app))
203204

204205
if settings.DYNAMIC_SERVICES.DIRECTOR_V2_DYNAMIC_SERVICES_ENABLED:
205206
dynamic_services.setup(app, tracing_settings=settings.DIRECTOR_V2_TRACING)

services/director/src/simcore_service_director/core/application.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from servicelib.fastapi.client_session import setup_client_session
66
from servicelib.fastapi.http_error import set_app_default_http_error_handlers
77
from servicelib.fastapi.tracing import (
8+
get_tracing_data,
89
initialize_fastapi_app_tracing,
910
setup_tracing,
1011
)
@@ -55,7 +56,7 @@ def create_app(settings: ApplicationSettings) -> FastAPI:
5556
setup_registry(app)
5657

5758
if app.state.settings.DIRECTOR_TRACING:
58-
initialize_fastapi_app_tracing(app)
59+
initialize_fastapi_app_tracing(app, tracing_data=get_tracing_data(app))
5960

6061
# ERROR HANDLERS
6162
set_app_default_http_error_handlers(app)

services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/core/application.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,6 @@ def create_app(
6161

6262
if app_settings.DYNAMIC_SCHEDULER_TRACING:
6363
assert tracing_data # nosec
64-
initialize_fastapi_app_tracing(app)
64+
initialize_fastapi_app_tracing(app, tracing_data=tracing_data)
6565

6666
return app

services/invitations/src/simcore_service_invitations/core/application.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
)
55
from servicelib.fastapi.openapi import override_fastapi_openapi_method
66
from servicelib.fastapi.tracing import (
7+
get_tracing_data,
78
initialize_fastapi_app_tracing,
89
setup_tracing,
910
)
@@ -48,7 +49,7 @@ def create_app(settings: ApplicationSettings | None = None) -> FastAPI:
4849
setup_prometheus_instrumentation(app)
4950

5051
if app.state.settings.INVITATIONS_TRACING:
51-
initialize_fastapi_app_tracing(app)
52+
initialize_fastapi_app_tracing(app, tracing_data=get_tracing_data(app))
5253

5354
# ERROR HANDLERS
5455
exceptions_handlers.setup(app)

0 commit comments

Comments
 (0)