@@ -164,10 +164,7 @@ impl BuildQueue {
164164 . is_some ( ) )
165165 }
166166
167- pub ( crate ) fn process_next_crate (
168- & self ,
169- f : impl FnOnce ( & QueuedCrate ) -> Result < ( ) > ,
170- ) -> Result < ( ) > {
167+ fn process_next_crate ( & self , f : impl FnOnce ( & QueuedCrate ) -> Result < ( ) > ) -> Result < ( ) > {
171168 let mut conn = self . db . get ( ) ?;
172169 let mut transaction = conn. transaction ( ) ?;
173170
@@ -198,11 +195,13 @@ impl BuildQueue {
198195 None => return Ok ( ( ) ) ,
199196 } ;
200197
201- let res = f ( & to_process) . with_context ( || {
202- format ! (
203- "Failed to build package {}-{} from queue" ,
204- to_process. name, to_process. version
205- )
198+ let res = self . metrics . build_time . observe_closure_duration ( || {
199+ f ( & to_process) . with_context ( || {
200+ format ! (
201+ "Failed to build package {}-{} from queue" ,
202+ to_process. name, to_process. version
203+ )
204+ } )
206205 } ) ;
207206 self . metrics . total_builds . inc ( ) ;
208207 if let Err ( err) =
@@ -631,6 +630,7 @@ mod tests {
631630 let metrics = env. instance_metrics ( ) ;
632631 assert_eq ! ( metrics. total_builds. get( ) , 9 ) ;
633632 assert_eq ! ( metrics. failed_builds. get( ) , 1 ) ;
633+ assert_eq ! ( metrics. build_time. get_sample_count( ) , 9 ) ;
634634
635635 // no invalidations were run since we don't have a distribution id configured
636636 assert ! ( cdn:: queued_or_active_crate_invalidations( & mut * env. db( ) . conn( ) ) ?. is_empty( ) ) ;
0 commit comments