Skip to content

Commit 6647cd8

Browse files
🐛 Fix tracing exemplars (#7750)
1 parent a0d9481 commit 6647cd8

File tree

17 files changed

+117
-20
lines changed

17 files changed

+117
-20
lines changed

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

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,6 @@ def _startup(tracing_settings: TracingSettings, service_name: str) -> None:
101101
span_processor = BatchSpanProcessor(otlp_exporter)
102102
global_tracer_provider.add_span_processor(span_processor)
103103

104-
FastAPIInstrumentor().instrument()
105104
if HAS_AIOPG:
106105
with log_context(
107106
_logger,
@@ -181,14 +180,18 @@ def _shutdown() -> None:
181180
_logger.exception("Failed to uninstrument RequestsInstrumentor")
182181

183182

183+
def initialize_fastapi_app_tracing(app: FastAPI):
184+
FastAPIInstrumentor.instrument_app(app)
185+
186+
184187
def setup_httpx_client_tracing(client: AsyncClient | Client):
185188
HTTPXClientInstrumentor.instrument_client(client)
186189

187190

188191
def setup_tracing(
189192
app: FastAPI, tracing_settings: TracingSettings, service_name: str
190193
) -> None:
191-
194+
# NOTE: This does not instrument the app itself. Call setup_fastapi_app_tracing to do that.
192195
_startup(tracing_settings=tracing_settings, service_name=service_name)
193196

194197
def _on_shutdown() -> None:
@@ -200,7 +203,7 @@ def _on_shutdown() -> None:
200203
def get_tracing_instrumentation_lifespan(
201204
tracing_settings: TracingSettings, service_name: str
202205
):
203-
206+
# NOTE: This lifespan does not instrument the app itself. Call setup_fastapi_app_tracing to do that.
204207
_startup(tracing_settings=tracing_settings, service_name=service_name)
205208

206209
async def tracing_instrumentation_lifespan(

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@
55
get_common_oas_options,
66
override_fastapi_openapi_method,
77
)
8-
from servicelib.fastapi.tracing import setup_tracing
8+
from servicelib.fastapi.tracing import (
9+
initialize_fastapi_app_tracing,
10+
setup_tracing,
11+
)
912
from servicelib.logging_utils import config_all_loggers
1013

1114
from .._meta import (
@@ -66,6 +69,9 @@ def create_app() -> FastAPI:
6669
setup_rest_api(app)
6770
setup_rpc_api_routes(app)
6871

72+
if settings.AGENT_TRACING:
73+
initialize_fastapi_app_tracing(app)
74+
6975
async def _on_startup() -> None:
7076
print(APP_STARTED_BANNER_MSG, flush=True) # noqa: T201
7177

services/api-server/src/simcore_service_api_server/core/application.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@
55
from models_library.basic_types import BootModeEnum
66
from packaging.version import Version
77
from servicelib.fastapi.profiler import initialize_profiler
8-
from servicelib.fastapi.tracing import setup_tracing
8+
from servicelib.fastapi.tracing import (
9+
initialize_fastapi_app_tracing,
10+
setup_tracing,
11+
)
912
from servicelib.logging_utils import config_all_loggers
1013

1114
from .. import exceptions
@@ -93,6 +96,9 @@ def init_app(settings: ApplicationSettings | None = None) -> FastAPI:
9396
if app.state.settings.API_SERVER_PROMETHEUS_INSTRUMENTATION_ENABLED:
9497
setup_prometheus_instrumentation(app)
9598

99+
if settings.API_SERVER_TRACING:
100+
initialize_fastapi_app_tracing(app)
101+
96102
if settings.API_SERVER_WEBSERVER:
97103
webserver.setup(
98104
app,

services/autoscaling/src/simcore_service_autoscaling/core/application.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import logging
22

33
from fastapi import FastAPI
4-
from servicelib.fastapi.tracing import setup_tracing
4+
from servicelib.fastapi.tracing import (
5+
initialize_fastapi_app_tracing,
6+
setup_tracing,
7+
)
58

69
from .._meta import (
710
API_VERSION,
@@ -71,6 +74,9 @@ def create_app(settings: ApplicationSettings) -> FastAPI:
7174
setup_ssm(app)
7275
setup_redis(app)
7376

77+
if app.state.settings.AUTOSCALING_TRACING:
78+
initialize_fastapi_app_tracing(app)
79+
7480
setup_auto_scaler_background_task(app)
7581
setup_buffer_machines_pool_task(app)
7682

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88
setup_prometheus_instrumentation,
99
)
1010
from servicelib.fastapi.openapi import override_fastapi_openapi_method
11-
from servicelib.fastapi.tracing import setup_tracing
11+
from servicelib.fastapi.tracing import (
12+
initialize_fastapi_app_tracing,
13+
setup_tracing,
14+
)
1215
from starlette.middleware.base import BaseHTTPMiddleware
1316

1417
from .._meta import (
@@ -68,6 +71,9 @@ def create_app() -> FastAPI:
6871
if settings.CATALOG_PROMETHEUS_INSTRUMENTATION_ENABLED:
6972
setup_prometheus_instrumentation(app)
7073

74+
if settings.CATALOG_TRACING:
75+
initialize_fastapi_app_tracing(app)
76+
7177
if settings.SC_BOOT_MODE != BootModeEnum.PRODUCTION:
7278
# middleware to time requests (ONLY for development)
7379
app.add_middleware(

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@
44
from servicelib.fastapi.monitoring import (
55
setup_prometheus_instrumentation,
66
)
7-
from servicelib.fastapi.tracing import setup_tracing
7+
from servicelib.fastapi.tracing import (
8+
initialize_fastapi_app_tracing,
9+
setup_tracing,
10+
)
811

912
from .._meta import (
1013
API_VERSION,
@@ -76,6 +79,8 @@ def create_app(settings: ApplicationSettings) -> FastAPI:
7679
setup_redis(app)
7780
setup_clusters_management(app)
7881

82+
if app.state.settings.CLUSTERS_KEEPER_TRACING:
83+
initialize_fastapi_app_tracing(app)
7984
# ERROR HANDLERS
8085

8186
# EVENTS

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@
1010
setup_prometheus_instrumentation,
1111
)
1212
from servicelib.fastapi.openapi import override_fastapi_openapi_method
13-
from servicelib.fastapi.tracing import setup_tracing
13+
from servicelib.fastapi.tracing import (
14+
initialize_fastapi_app_tracing,
15+
setup_tracing,
16+
)
1417
from starlette.middleware.base import BaseHTTPMiddleware
1518

1619
from .._meta import API_VERSION, API_VTAG, APP_NAME
@@ -76,6 +79,9 @@ def create_app(settings: ApplicationSettings) -> FastAPI:
7679
)
7780
app.add_middleware(GZipMiddleware)
7881

82+
if app.state.settings.DATCORE_ADAPTER_TRACING:
83+
initialize_fastapi_app_tracing(app)
84+
7985
# events
8086
app.add_event_handler("startup", on_startup)
8187
app.add_event_handler("startup", create_start_app_handler(app))

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@
77
override_fastapi_openapi_method,
88
)
99
from servicelib.fastapi.profiler import initialize_profiler
10-
from servicelib.fastapi.tracing import setup_tracing
10+
from servicelib.fastapi.tracing import (
11+
initialize_fastapi_app_tracing,
12+
setup_tracing,
13+
)
1114
from servicelib.logging_utils import config_all_loggers
1215

1316
from .._meta import API_VERSION, API_VTAG, APP_NAME, PROJECT_NAME, SUMMARY
@@ -174,6 +177,9 @@ def init_app(settings: AppSettings | None = None) -> FastAPI:
174177

175178
db.setup(app, settings.POSTGRES)
176179

180+
if settings.DIRECTOR_V2_TRACING:
181+
initialize_fastapi_app_tracing(app)
182+
177183
if settings.DYNAMIC_SERVICES.DIRECTOR_V2_DYNAMIC_SERVICES_ENABLED:
178184
dynamic_services.setup(app, tracing_settings=settings.DIRECTOR_V2_TRACING)
179185

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@
44
from fastapi import FastAPI
55
from servicelib.async_utils import cancel_sequential_workers
66
from servicelib.fastapi.client_session import setup_client_session
7-
from servicelib.fastapi.tracing import setup_tracing
7+
from servicelib.fastapi.tracing import (
8+
initialize_fastapi_app_tracing,
9+
setup_tracing,
10+
)
811

912
from .._meta import (
1013
API_VERSION,
@@ -62,6 +65,9 @@ def create_app(settings: ApplicationSettings) -> FastAPI:
6265
)
6366
setup_registry(app)
6467

68+
if app.state.settings.DIRECTOR_TRACING:
69+
initialize_fastapi_app_tracing(app)
70+
6571
# ERROR HANDLERS
6672

6773
# EVENTS

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

Lines changed: 4 additions & 0 deletions
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.profiler import initialize_profiler
7+
from servicelib.fastapi.tracing import initialize_fastapi_app_tracing
78

89
from .._meta import API_VERSION, API_VTAG, PROJECT_NAME, SUMMARY
910
from ..api.frontend import initialize_frontend
@@ -42,4 +43,7 @@ def create_app(settings: ApplicationSettings | None = None) -> FastAPI:
4243
if app_settings.DYNAMIC_SCHEDULER_PROFILING:
4344
initialize_profiler(app)
4445

46+
if app_settings.DYNAMIC_SCHEDULER_TRACING:
47+
initialize_fastapi_app_tracing(app)
48+
4549
return app

0 commit comments

Comments
 (0)