@@ -164,10 +164,7 @@ impl BuildQueue {
164
164
. is_some ( ) )
165
165
}
166
166
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 < ( ) > {
171
168
let mut conn = self . db . get ( ) ?;
172
169
let mut transaction = conn. transaction ( ) ?;
173
170
@@ -198,11 +195,13 @@ impl BuildQueue {
198
195
None => return Ok ( ( ) ) ,
199
196
} ;
200
197
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
+ } )
206
205
} ) ;
207
206
self . metrics . total_builds . inc ( ) ;
208
207
if let Err ( err) =
@@ -631,6 +630,7 @@ mod tests {
631
630
let metrics = env. instance_metrics ( ) ;
632
631
assert_eq ! ( metrics. total_builds. get( ) , 9 ) ;
633
632
assert_eq ! ( metrics. failed_builds. get( ) , 1 ) ;
633
+ assert_eq ! ( metrics. build_time. get_sample_count( ) , 9 ) ;
634
634
635
635
// no invalidations were run since we don't have a distribution id configured
636
636
assert ! ( cdn:: queued_or_active_crate_invalidations( & mut * env. db( ) . conn( ) ) ?. is_empty( ) ) ;
0 commit comments