2020 futures:: StreamExt ,
2121 prometheus_client:: {
2222 encoding:: EncodeLabelSet ,
23- metrics:: { counter:: Counter , family:: Family , gauge:: Gauge } ,
23+ metrics:: { counter:: Counter , family:: Family , gauge:: Gauge , histogram :: Histogram } ,
2424 registry:: Registry ,
2525 } ,
2626 std:: {
@@ -62,7 +62,6 @@ pub struct AccountLabel {
6262 pub address : String ,
6363}
6464
65- #[ derive( Default ) ]
6665pub struct KeeperMetrics {
6766 pub current_sequence_number : Family < AccountLabel , Gauge > ,
6867 pub end_sequence_number : Family < AccountLabel , Gauge > ,
@@ -74,6 +73,33 @@ pub struct KeeperMetrics {
7473 pub requests_processed : Family < AccountLabel , Counter > ,
7574 pub requests_reprocessed : Family < AccountLabel , Counter > ,
7675 pub reveals : Family < AccountLabel , Counter > ,
76+ pub request_duration_ms : Family < AccountLabel , Histogram > ,
77+ }
78+
79+ impl Default for KeeperMetrics {
80+ fn default ( ) -> Self {
81+ Self {
82+ current_sequence_number : Family :: default ( ) ,
83+ end_sequence_number : Family :: default ( ) ,
84+ balance : Family :: default ( ) ,
85+ collected_fee : Family :: default ( ) ,
86+ current_fee : Family :: default ( ) ,
87+ total_gas_spent : Family :: default ( ) ,
88+ requests : Family :: default ( ) ,
89+ requests_processed : Family :: default ( ) ,
90+ requests_reprocessed : Family :: default ( ) ,
91+ reveals : Family :: default ( ) ,
92+ request_duration_ms : Family :: new_with_constructor ( || {
93+ Histogram :: new (
94+ vec ! [
95+ 1.0 , 5.0 , 10.0 , 50.0 , 100.0 , 500.0 , 1000.0 , 5000.0 , 10000.0 , 30000.0 ,
96+ 60000.0 ,
97+ ]
98+ . into_iter ( ) ,
99+ )
100+ } ) ,
101+ }
102+ }
77103}
78104
79105impl KeeperMetrics {
@@ -141,6 +167,12 @@ impl KeeperMetrics {
141167 keeper_metrics. requests_reprocessed . clone ( ) ,
142168 ) ;
143169
170+ writable_registry. register (
171+ "request_duration_ms" ,
172+ "Time taken to process each callback request in milliseconds" ,
173+ keeper_metrics. request_duration_ms . clone ( ) ,
174+ ) ;
175+
144176 keeper_metrics
145177 }
146178}
0 commit comments