@@ -41,7 +41,7 @@ pub struct DefaultEngine<E: TaskExecutor> {
4141 json : Arc < DefaultJsonHandler < E > > ,
4242 parquet : Arc < DefaultParquetHandler < E > > ,
4343 evaluation : Arc < ArrowEvaluationHandler > ,
44- reporter : Option < Arc < dyn MetricsReporter > > ,
44+ metrics_reporter : Option < Arc < dyn MetricsReporter > > ,
4545}
4646
4747impl DefaultEngine < executor:: tokio:: TokioBackgroundExecutor > {
@@ -60,19 +60,15 @@ impl DefaultEngine<executor::tokio::TokioBackgroundExecutor> {
6060 )
6161 }
6262
63- /// Create a new [`DefaultEngine`] instance with the default executor and metrics reporting.
64- /// TODO: Switch to Builder pattern to avoid explosion of constructor methods.
65- #[ allow( dead_code) ]
63+ /// Set a metrics reporter for the engine to collect events and metrics during operations.
64+ ///
65+ /// # Parameters
66+ ///
67+ /// - `reporter`: An implementation of the [`MetricsReporter`] trait which will be used to
68+ /// report metrics.
6669 #[ internal_api]
67- pub ( crate ) fn new_with_metrics_reporter (
68- object_store : Arc < DynObjectStore > ,
69- reporter : Arc < dyn MetricsReporter > ,
70- ) -> Self {
71- Self :: new_with_executor_and_metrics_reporter (
72- object_store,
73- Arc :: new ( executor:: tokio:: TokioBackgroundExecutor :: new ( ) ) ,
74- reporter,
75- )
70+ pub ( crate ) fn set_metrics_reporter ( & mut self , reporter : Arc < dyn MetricsReporter > ) {
71+ self . metrics_reporter = Some ( reporter) ;
7672 }
7773}
7874
@@ -103,36 +99,7 @@ impl<E: TaskExecutor> DefaultEngine<E> {
10399 ) ) ,
104100 object_store,
105101 evaluation : Arc :: new ( ArrowEvaluationHandler { } ) ,
106- reporter : None ,
107- }
108- }
109-
110- /// Create a new [`DefaultEngine`] instance with a custom executor and metrics reporting.
111- /// TODO: Switch to Builder pattern to avoid explosion of constructor methods.
112- #[ allow( dead_code) ]
113- #[ internal_api]
114- pub ( crate ) fn new_with_executor_and_metrics_reporter (
115- object_store : Arc < DynObjectStore > ,
116- task_executor : Arc < E > ,
117- reporter : Arc < dyn MetricsReporter > ,
118- ) -> Self {
119- Self {
120- storage : Arc :: new ( ObjectStoreStorageHandler :: new (
121- object_store. clone ( ) ,
122- task_executor. clone ( ) ,
123- Some ( reporter. clone ( ) ) ,
124- ) ) ,
125- json : Arc :: new ( DefaultJsonHandler :: new (
126- object_store. clone ( ) ,
127- task_executor. clone ( ) ,
128- ) ) ,
129- parquet : Arc :: new ( DefaultParquetHandler :: new (
130- object_store. clone ( ) ,
131- task_executor,
132- ) ) ,
133- object_store,
134- evaluation : Arc :: new ( ArrowEvaluationHandler { } ) ,
135- reporter : Some ( reporter) ,
102+ metrics_reporter : None ,
136103 }
137104 }
138105
@@ -179,7 +146,7 @@ impl<E: TaskExecutor> Engine for DefaultEngine<E> {
179146 }
180147
181148 fn get_metrics_reporter ( & self ) -> Option < Arc < dyn MetricsReporter > > {
182- self . reporter . clone ( )
149+ self . metrics_reporter . clone ( )
183150 }
184151}
185152
0 commit comments