@@ -14,26 +14,28 @@ use chrono::{Duration, NaiveDate, Utc};
14
14
/// This returns a URL to the location where the crate is stored.
15
15
pub fn download ( req : & mut dyn RequestExt ) -> EndpointResult {
16
16
let app = req. app ( ) . clone ( ) ;
17
- let recorder = req. timing_recorder ( ) ;
18
17
19
18
let mut crate_name = req. params ( ) [ "crate_id" ] . clone ( ) ;
20
19
let version = req. params ( ) [ "version" ] . as_str ( ) ;
21
20
22
21
let mut log_metadata = None ;
23
- match recorder . record ( "get_conn" , || req. db_conn ( ) ) {
22
+ match req. db_conn ( ) {
24
23
Ok ( conn) => {
25
24
use self :: versions:: dsl:: * ;
26
25
27
26
// Returns the crate name as stored in the database, or an error if we could
28
27
// not load the version ID from the database.
29
- let ( version_id, canonical_crate_name) = recorder. record ( "get_version" , || {
30
- versions
31
- . inner_join ( crates:: table)
32
- . select ( ( id, crates:: name) )
33
- . filter ( Crate :: with_name ( & crate_name) )
34
- . filter ( num. eq ( version) )
35
- . first :: < ( i32 , String ) > ( & * conn)
36
- } ) ?;
28
+ let ( version_id, canonical_crate_name) = app
29
+ . instance_metrics
30
+ . downloads_select_query_execution_time
31
+ . observe_closure_duration ( || {
32
+ versions
33
+ . inner_join ( crates:: table)
34
+ . select ( ( id, crates:: name) )
35
+ . filter ( Crate :: with_name ( & crate_name) )
36
+ . filter ( num. eq ( version) )
37
+ . first :: < ( i32 , String ) > ( & * conn)
38
+ } ) ?;
37
39
38
40
if canonical_crate_name != crate_name {
39
41
app. instance_metrics
0 commit comments