Ver Fonte

feat(fortuna): add current commitment sequence number metric (#2639)

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Jayant Krishnamurthy <jayant@dourolabs.xyz>
devin-ai-integration[bot] há 6 meses atrás
pai
commit
b587b8769d

+ 1 - 1
apps/fortuna/Cargo.toml

@@ -1,6 +1,6 @@
 [package]
 name = "fortuna"
-version = "7.5.2"
+version = "7.5.3"
 edition = "2021"
 
 [lib]

+ 11 - 0
apps/fortuna/src/keeper/keeper_metrics.rs

@@ -23,6 +23,7 @@ pub struct ChainIdLabel {
 
 pub struct KeeperMetrics {
     pub current_sequence_number: Family<AccountLabel, Gauge>,
+    pub current_commitment_sequence_number: Family<AccountLabel, Gauge>,
     pub end_sequence_number: Family<AccountLabel, Gauge>,
     pub balance: Family<AccountLabel, Gauge<f64, AtomicU64>>,
     pub collected_fee: Family<AccountLabel, Gauge<f64, AtomicU64>>,
@@ -48,6 +49,7 @@ impl Default for KeeperMetrics {
     fn default() -> Self {
         Self {
             current_sequence_number: Family::default(),
+            current_commitment_sequence_number: Family::default(),
             end_sequence_number: Family::default(),
             balance: Family::default(),
             collected_fee: Family::default(),
@@ -101,6 +103,12 @@ impl KeeperMetrics {
             keeper_metrics.current_sequence_number.clone(),
         );
 
+        writable_registry.register(
+            "current_commitment_sequence_number",
+            "The sequence number for the current commitment",
+            keeper_metrics.current_commitment_sequence_number.clone(),
+        );
+
         writable_registry.register(
             "end_sequence_number",
             "The sequence number for the end request",
@@ -237,6 +245,9 @@ impl KeeperMetrics {
             let _ = keeper_metrics
                 .current_sequence_number
                 .get_or_create(&account_label);
+            let _ = keeper_metrics
+                .current_commitment_sequence_number
+                .get_or_create(&account_label);
             let _ = keeper_metrics
                 .end_sequence_number
                 .get_or_create(&account_label);

+ 11 - 0
apps/fortuna/src/keeper/track.rs

@@ -65,6 +65,7 @@ pub async fn track_provider(
 
     let current_sequence_number = provider_info.sequence_number;
     let end_sequence_number = provider_info.end_sequence_number;
+    let current_commitment_sequence_number = provider_info.current_commitment_sequence_number;
 
     metrics
         .collected_fee
@@ -92,6 +93,16 @@ pub async fn track_provider(
         // a long time for it to cross the limits of i64.
         // currently prometheus only supports i64 for Gauge types
         .set(current_sequence_number as i64);
+    metrics
+        .current_commitment_sequence_number
+        .get_or_create(&AccountLabel {
+            chain_id: chain_id.clone(),
+            address: provider_address.to_string(),
+        })
+        // sequence_number type on chain is u64 but practically it will take
+        // a long time for it to cross the limits of i64.
+        // currently prometheus only supports i64 for Gauge types
+        .set(current_commitment_sequence_number as i64);
     metrics
         .end_sequence_number
         .get_or_create(&AccountLabel {