@@ -97,18 +97,8 @@ impl ExecutionContext {
9797 executor = Some ( dedicated_executor)
9898 }
9999
100- #[ cfg( any(
101- feature = "udfs-wasm" ,
102- feature = "observability" ,
103- feature = "functions-json"
104- ) ) ]
100+ #[ allow( unused_mut) ]
105101 let mut session_ctx = SessionContext :: new_with_state ( session_state) ;
106- #[ cfg( all(
107- not( feature = "udfs-wasm" ) ,
108- not( feature = "observability" ) ,
109- not( feature = "functions-json" )
110- ) ) ]
111- let session_ctx = SessionContext :: new_with_state ( session_state) ;
112102
113103 #[ cfg( feature = "functions-json" ) ]
114104 datafusion_functions_json:: register_all ( & mut session_ctx) ?;
@@ -132,26 +122,42 @@ impl ExecutionContext {
132122 let catalog = create_app_catalog ( config, app_name, app_version) ?;
133123 session_ctx. register_catalog ( & config. catalog . name , catalog) ;
134124
135- // #[cfg(feature = "observability")]
136- // {
137- // let obs = ObservabilityContext::new(config.observability.clone());
138- // }
139-
140- #[ cfg( feature = "observability" ) ]
141- let ctx = Self {
142- config : config. clone ( ) ,
143- session_ctx,
144- ddl_path : config. ddl_path . as_ref ( ) . map ( PathBuf :: from) ,
145- executor,
146- observability : ObservabilityContext :: default ( ) ,
147- } ;
148-
149- #[ cfg( not( feature = "observability" ) ) ]
150- let ctx = Self {
151- config : config. clone ( ) ,
152- session_ctx,
153- ddl_path : config. ddl_path . as_ref ( ) . map ( PathBuf :: from) ,
154- executor,
125+ let ctx = {
126+ #[ cfg( feature = "observability" ) ]
127+ {
128+ let observability =
129+ ObservabilityContext :: try_new ( config. observability . clone ( ) , app_name) ?;
130+ if let Some ( cat) = session_ctx. catalog ( & config. catalog . name ) {
131+ match cat
132+ . register_schema ( & config. observability . schema_name , observability. schema ( ) )
133+ {
134+ Ok ( _) => {
135+ info ! ( "Registered observability schema" )
136+ }
137+ Err ( e) => {
138+ error ! ( "Error registering observability schema: {}" , e. to_string( ) )
139+ }
140+ }
141+ } else {
142+ error ! ( "Missing catalog to register observability schema" )
143+ }
144+ Self {
145+ config : config. clone ( ) ,
146+ session_ctx,
147+ ddl_path : config. ddl_path . as_ref ( ) . map ( PathBuf :: from) ,
148+ executor,
149+ observability,
150+ }
151+ }
152+ #[ cfg( not( feature = "observability" ) ) ]
153+ {
154+ Self {
155+ config : config. clone ( ) ,
156+ session_ctx,
157+ ddl_path : config. ddl_path . as_ref ( ) . map ( PathBuf :: from) ,
158+ executor,
159+ }
160+ }
155161 } ;
156162
157163 Ok ( ctx)
0 commit comments