Skip to content

Commit 570510d

Browse files
devin-ai-integration[bot]Jayant Krishnamurthy
andcommitted
feat: add request_duration_ms histogram metric to track callback processing time
Co-Authored-By: Jayant Krishnamurthy <[email protected]>
1 parent 97270f2 commit 570510d

File tree

1 file changed

+34
-2
lines changed

1 file changed

+34
-2
lines changed

apps/fortuna/src/keeper.rs

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use {
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)]
6665
pub 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

79105
impl 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

Comments
 (0)