11import logging
2+ from typing import Final
23
34from aiohttp import web
45from servicelib .aiohttp .tracing import get_tracing_lifespan
78
89from ._meta import APP_NAME
910from .application_keys import APP_SETTINGS_APPKEY
10- from .application_settings import get_application_settings
1111from .application_setup import ModuleCategory , app_setup_func
1212
1313log = logging .getLogger (__name__ )
1414
15+ _TRACING_DATA_KEY : Final [str ] = "tracing_data"
16+
1517
1618def get_plugin_settings (app : web .Application ) -> TracingSettings :
1719 settings = app [APP_SETTINGS_APPKEY ].WEBSERVER_TRACING
@@ -20,6 +22,12 @@ def get_plugin_settings(app: web.Application) -> TracingSettings:
2022 return settings
2123
2224
25+ def _setup_tracing_data (app : web .Application , tracing_settings : TracingSettings ):
26+ app [_TRACING_DATA_KEY ] = TracingData .create (
27+ tracing_settings = tracing_settings , service_name = APP_NAME
28+ )
29+
30+
2331@app_setup_func (
2432 __name__ , ModuleCategory .ADDON , settings_name = "WEBSERVER_TRACING" , logger = log
2533)
@@ -34,17 +42,14 @@ def setup_app_tracing(app: web.Application):
3442
3543 """
3644
37- app_settings = get_application_settings (app )
3845 tracing_settings : TracingSettings = get_plugin_settings (app )
39- tracing_data = TracingData .create (
40- tracing_settings = tracing_settings , service_name = APP_NAME
41- )
46+ _setup_tracing_data (app , tracing_settings = tracing_settings )
4247
4348 app .cleanup_ctx .append (
4449 get_tracing_lifespan (
4550 app = app ,
4651 tracing_settings = tracing_settings ,
4752 add_response_trace_id_header = True ,
48- tracing_data = tracing_data ,
53+ tracing_data = app [ _TRACING_DATA_KEY ] ,
4954 )
5055 )
0 commit comments