Skip to content

Commit 168fef8

Browse files
committed
start sorting out order of middlewares
1 parent aec4c1e commit 168fef8

File tree

10 files changed

+36
-10
lines changed

10 files changed

+36
-10
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 setup_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: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
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 setup_fastapi_app_tracing, setup_tracing
99
from servicelib.logging_utils import config_all_loggers
1010

1111
from .._meta import (
@@ -66,6 +66,9 @@ def create_app() -> FastAPI:
6666
setup_rest_api(app)
6767
setup_rpc_api_routes(app)
6868

69+
if settings.AGENT_TRACING:
70+
setup_fastapi_app_tracing(app)
71+
6972
async def _on_startup() -> None:
7073
print(APP_STARTED_BANNER_MSG, flush=True) # noqa: T201
7174

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
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 setup_fastapi_app_tracing, setup_tracing
99
from servicelib.logging_utils import config_all_loggers
1010

1111
from .. import exceptions
@@ -93,6 +93,9 @@ def init_app(settings: ApplicationSettings | None = None) -> FastAPI:
9393
if app.state.settings.API_SERVER_PROMETHEUS_INSTRUMENTATION_ENABLED:
9494
setup_prometheus_instrumentation(app)
9595

96+
if settings.API_SERVER_TRACING:
97+
setup_fastapi_app_tracing(app)
98+
9699
if settings.API_SERVER_WEBSERVER:
97100
webserver.setup(
98101
app,

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

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

33
from fastapi import FastAPI
4-
from servicelib.fastapi.tracing import setup_tracing
4+
from servicelib.fastapi.tracing import setup_fastapi_app_tracing, setup_tracing
55

66
from .._meta import (
77
API_VERSION,
@@ -71,6 +71,9 @@ def create_app(settings: ApplicationSettings) -> FastAPI:
7171
setup_ssm(app)
7272
setup_redis(app)
7373

74+
if app.state.settings.AUTOSCALING_TRACING:
75+
setup_fastapi_app_tracing(app)
76+
7477
setup_auto_scaler_background_task(app)
7578
setup_buffer_machines_pool_task(app)
7679

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
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 setup_fastapi_app_tracing, setup_tracing
1212
from starlette.middleware.base import BaseHTTPMiddleware
1313

1414
from .._meta import (
@@ -68,6 +68,9 @@ def create_app() -> FastAPI:
6868
if settings.CATALOG_PROMETHEUS_INSTRUMENTATION_ENABLED:
6969
setup_prometheus_instrumentation(app)
7070

71+
if settings.CATALOG_TRACING:
72+
setup_fastapi_app_tracing(app)
73+
7174
if settings.SC_BOOT_MODE != BootModeEnum.PRODUCTION:
7275
# middleware to time requests (ONLY for development)
7376
app.add_middleware(

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
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 setup_fastapi_app_tracing, setup_tracing
88

99
from .._meta import (
1010
API_VERSION,
@@ -76,6 +76,8 @@ def create_app(settings: ApplicationSettings) -> FastAPI:
7676
setup_redis(app)
7777
setup_clusters_management(app)
7878

79+
if app.state.settings.CLUSTERS_KEEPER_TRACING:
80+
setup_fastapi_app_tracing(app)
7981
# ERROR HANDLERS
8082

8183
# EVENTS

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
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 setup_fastapi_app_tracing, setup_tracing
1414
from starlette.middleware.base import BaseHTTPMiddleware
1515

1616
from .._meta import API_VERSION, API_VTAG, APP_NAME
@@ -76,6 +76,9 @@ def create_app(settings: ApplicationSettings) -> FastAPI:
7676
)
7777
app.add_middleware(GZipMiddleware)
7878

79+
if app.state.settings.DATCORE_ADAPTER_TRACING:
80+
setup_fastapi_app_tracing(app)
81+
7982
# events
8083
app.add_event_handler("startup", on_startup)
8184
app.add_event_handler("startup", create_start_app_handler(app))

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
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 setup_fastapi_app_tracing, setup_tracing
1111
from servicelib.logging_utils import config_all_loggers
1212

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

175175
db.setup(app, settings.POSTGRES)
176176

177+
if settings.DIRECTOR_V2_TRACING:
178+
setup_fastapi_app_tracing(app)
179+
177180
if settings.DYNAMIC_SERVICES.DIRECTOR_V2_DYNAMIC_SERVICES_ENABLED:
178181
dynamic_services.setup(app, tracing_settings=settings.DIRECTOR_V2_TRACING)
179182

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

Lines changed: 3 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 setup_fastapi_app_tracing
78

89
from .._meta import API_VERSION, API_VTAG, PROJECT_NAME, SUMMARY
910
from ..api.frontend import initialize_frontend
@@ -27,6 +28,8 @@ def create_app(settings: ApplicationSettings | None = None) -> FastAPI:
2728
lifespan=events.create_app_lifespan(settings=app_settings),
2829
)
2930
override_fastapi_openapi_method(app)
31+
if app_settings.DYNAMIC_SCHEDULER_TRACING:
32+
setup_fastapi_app_tracing(app)
3033

3134
# STATE
3235
app.state.settings = app_settings

tests/performance/locust_files/functions/workflow.py

Whitespace-only changes.

0 commit comments

Comments
 (0)