@@ -137,8 +137,12 @@ impl QueryPlanner for QueryPlannerImpl {
137137 inline_tables : & InlineTables ,
138138 trace_obj : Option < String > ,
139139 ) -> Result < QueryPlan , CubeError > {
140+ let pre_execution_context_time = SystemTime :: now ( ) ;
140141 let ctx = self . execution_context ( ) ?;
141142
143+ let post_execution_context_time = SystemTime :: now ( ) ;
144+ app_metrics:: DATA_QUERY_LOGICAL_PLAN_EXECUTION_CONTEXT_TIME_US . report ( post_execution_context_time. duration_since ( pre_execution_context_time) ?. as_micros ( ) as i64 ) ;
145+
142146 let state = Arc :: new ( ctx. state ( ) ) ;
143147 let schema_provider = MetaStoreSchemaProvider :: new (
144148 self . meta_store . get_tables_with_path ( false ) . await ?,
@@ -150,7 +154,12 @@ impl QueryPlanner for QueryPlannerImpl {
150154 ) ;
151155
152156 let query_planner = SqlToRel :: new_with_options ( & schema_provider, sql_to_rel_options ( ) ) ;
157+
158+ let pre_statement_to_plan_time = SystemTime :: now ( ) ;
153159 let mut logical_plan = query_planner. statement_to_plan ( statement) ?;
160+ let post_statement_to_plan_time = SystemTime :: now ( ) ;
161+ app_metrics:: DATA_QUERY_LOGICAL_PLAN_QUERY_PLANNER_SETUP_TIME_US . report ( pre_statement_to_plan_time. duration_since ( post_execution_context_time) ?. as_micros ( ) as i64 ) ;
162+ app_metrics:: DATA_QUERY_LOGICAL_PLAN_STATEMENT_TO_PLAN_TIME_US . report ( post_statement_to_plan_time. duration_since ( pre_statement_to_plan_time) ?. as_micros ( ) as i64 ) ;
154163
155164 // TODO upgrade DF remove
156165 trace ! (
@@ -170,8 +179,9 @@ impl QueryPlanner for QueryPlannerImpl {
170179
171180 let logical_plan_optimize_time = SystemTime :: now ( ) ;
172181 logical_plan = state. optimize ( & logical_plan) ?;
173- app_metrics:: DATA_QUERY_LOGICAL_PLAN_OPTIMIZE_TIME_MS
174- . report ( logical_plan_optimize_time. elapsed ( ) ?. as_millis ( ) as i64 ) ;
182+ let post_optimize_time = SystemTime :: now ( ) ;
183+ app_metrics:: DATA_QUERY_LOGICAL_PLAN_OPTIMIZE_TIME_US
184+ . report ( post_optimize_time. duration_since ( logical_plan_optimize_time) ?. as_micros ( ) as i64 ) ;
175185 trace ! (
176186 "Logical Plan: {}" ,
177187 pp_plan_ext(
@@ -187,34 +197,32 @@ impl QueryPlanner for QueryPlannerImpl {
187197 )
188198 ) ;
189199
200+ let post_is_data_select_query_time: SystemTime ;
190201 let plan = if SerializedPlan :: is_data_select_query ( & logical_plan) {
191202 let choose_index_ext_start = SystemTime :: now ( ) ;
203+ post_is_data_select_query_time = choose_index_ext_start;
192204 let ( logical_plan, meta) = choose_index_ext (
193205 logical_plan,
194206 & self . meta_store . as_ref ( ) ,
195207 self . config . enable_topk ( ) ,
196208 )
197209 . await ?;
198- let choose_index_ext_end = SystemTime :: now ( ) ;
199210 let workers = compute_workers (
200211 self . config . as_ref ( ) ,
201212 & logical_plan,
202213 & meta. multi_part_subtree ,
203214 ) ?;
204- app_metrics:: DATA_QUERY_CHOOSE_INDEX_TIME_MS . report (
205- choose_index_ext_end
206- . duration_since ( choose_index_ext_start) ?
207- . as_millis ( ) as i64 ,
208- ) ;
209- app_metrics:: DATA_QUERY_CHOOSE_INDEX_AND_WORKERS_TIME_MS
210- . report ( choose_index_ext_start. elapsed ( ) ?. as_millis ( ) as i64 ) ;
215+ app_metrics:: DATA_QUERY_CHOOSE_INDEX_AND_WORKERS_TIME_US
216+ . report ( choose_index_ext_start. elapsed ( ) ?. as_micros ( ) as i64 ) ;
211217 QueryPlan :: Select (
212218 PreSerializedPlan :: try_new ( logical_plan, meta, trace_obj) ?,
213219 workers,
214220 )
215221 } else {
222+ post_is_data_select_query_time = SystemTime :: now ( ) ;
216223 QueryPlan :: Meta ( logical_plan)
217224 } ;
225+ app_metrics:: DATA_QUERY_LOGICAL_PLAN_IS_DATA_SELECT_QUERY_US . report ( post_is_data_select_query_time. duration_since ( post_optimize_time) ?. as_micros ( ) as i64 ) ;
218226
219227 Ok ( plan)
220228 }
0 commit comments