@@ -44,7 +44,7 @@ use crate::query::error::ExecuteError;
44
44
use crate :: query:: { execute, CountsRequest , CountsResponse , Query as LogicalQuery } ;
45
45
use crate :: query:: { TableScanVisitor , QUERY_SESSION } ;
46
46
use crate :: rbac:: Users ;
47
- use crate :: response:: QueryResponse ;
47
+ use crate :: response:: { QueryResponse , TIME_ELAPSED_HEADER } ;
48
48
use crate :: storage:: object_storage:: commit_schema_to_storage;
49
49
use crate :: storage:: ObjectStorageError ;
50
50
use crate :: utils:: actix:: extract_session_key_from_req;
@@ -122,22 +122,26 @@ pub async fn query(req: HttpRequest, query_request: Query) -> Result<HttpRespons
122
122
Value :: Array ( vec ! [ json!( { column_name: count} ) ] )
123
123
} ;
124
124
125
+ let total_time = format ! ( "{:?}" , time. elapsed( ) ) ;
125
126
let time = time. elapsed ( ) . as_secs_f64 ( ) ;
126
127
127
128
QUERY_EXECUTE_TIME
128
129
. with_label_values ( & [ & table_name] )
129
130
. observe ( time) ;
130
131
131
- return Ok ( HttpResponse :: Ok ( ) . json ( response) ) ;
132
+ return Ok ( HttpResponse :: Ok ( )
133
+ . insert_header ( ( TIME_ELAPSED_HEADER , total_time. as_str ( ) ) )
134
+ . json ( response) ) ;
132
135
}
133
136
134
137
let ( records, fields) = execute ( query, & table_name) . await ?;
135
-
138
+ let total_time = format ! ( "{:?}" , time . elapsed ( ) ) ;
136
139
let response = QueryResponse {
137
140
records,
138
141
fields,
139
142
fill_null : query_request. send_null ,
140
143
with_fields : query_request. fields ,
144
+ total_time,
141
145
}
142
146
. to_http ( ) ?;
143
147
0 commit comments