@@ -44,8 +44,13 @@ pub struct StorageMetrics {
4444
4545 pub object_storage_delete_requests_total : IntCounter ,
4646 pub object_storage_bulk_delete_requests_total : IntCounter ,
47- pub object_storage_delete_request_duration : Histogram ,
48- pub object_storage_bulk_delete_request_duration : Histogram ,
47+ pub object_storage_delete_request_duration : Lazy < Histogram , Box < dyn Fn ( ) -> Histogram + Send > > ,
48+ pub object_storage_bulk_delete_request_duration :
49+ Lazy < Histogram , Box < dyn Fn ( ) -> Histogram + Send > > ,
50+ pub object_storage_get_request_duration : Lazy < Histogram , Box < dyn Fn ( ) -> Histogram + Send > > ,
51+ pub object_storage_put_request_duration : Lazy < Histogram , Box < dyn Fn ( ) -> Histogram + Send > > ,
52+ pub object_storage_put_part_request_duration :
53+ Lazy < Histogram , Box < dyn Fn ( ) -> Histogram + Send > > ,
4954}
5055
5156impl Default for StorageMetrics {
@@ -86,10 +91,26 @@ impl Default for StorageMetrics {
8691 [ "action" ] ,
8792 vec ! [ 0.1 , 0.5 , 1.0 , 5.0 , 10.0 , 30.0 , 60.0 ] ,
8893 ) ;
89- let object_storage_delete_request_duration =
90- object_storage_request_duration. with_label_values ( [ "delete_object" ] ) ;
91- let object_storage_bulk_delete_request_duration =
92- object_storage_request_duration. with_label_values ( [ "delete_objects" ] ) ;
94+ let object_storage_request_duration_clone = object_storage_request_duration. clone ( ) ;
95+ let object_storage_delete_request_duration = Lazy :: new ( Box :: new ( move || {
96+ object_storage_request_duration_clone. with_label_values ( [ "delete_object" ] )
97+ } ) as _ ) ;
98+ let object_storage_request_duration_clone = object_storage_request_duration. clone ( ) ;
99+ let object_storage_bulk_delete_request_duration = Lazy :: new ( Box :: new ( move || {
100+ object_storage_request_duration_clone. with_label_values ( [ "delete_objects" ] )
101+ } ) as _ ) ;
102+ let object_storage_request_duration_clone = object_storage_request_duration. clone ( ) ;
103+ let object_storage_get_request_duration = Lazy :: new ( Box :: new ( move || {
104+ object_storage_request_duration_clone. with_label_values ( [ "get" ] )
105+ } ) as _ ) ;
106+ let object_storage_request_duration_clone = object_storage_request_duration. clone ( ) ;
107+ let object_storage_put_request_duration = Lazy :: new ( Box :: new ( move || {
108+ object_storage_request_duration_clone. with_label_values ( [ "put" ] )
109+ } ) as _ ) ;
110+ let object_storage_request_duration_clone = object_storage_request_duration. clone ( ) ;
111+ let object_storage_put_part_request_duration = Lazy :: new ( Box :: new ( move || {
112+ object_storage_request_duration_clone. with_label_values ( [ "put_part" ] )
113+ } ) as _ ) ;
93114
94115 StorageMetrics {
95116 fast_field_cache : CacheMetrics :: for_component ( "fastfields" ) ,
@@ -142,6 +163,9 @@ impl Default for StorageMetrics {
142163 object_storage_bulk_delete_requests_total,
143164 object_storage_delete_request_duration,
144165 object_storage_bulk_delete_request_duration,
166+ object_storage_get_request_duration,
167+ object_storage_put_request_duration,
168+ object_storage_put_part_request_duration,
145169 }
146170 }
147171}
0 commit comments