Browse Source

fix(hermes): clone histograms before registering to avoid moving into async tasks

Co-Authored-By: Tejas Badadare <tejas@dourolabs.xyz>
Devin AI 3 months ago
parent
commit
bb80ea5539

+ 2 - 1
apps/hermes/server/src/api/metrics_middleware.rs

@@ -48,6 +48,7 @@ impl ApiMetrics {
         {
             let requests = new.requests.clone();
             let latencies = new.latencies.clone();
+            let sse_broadcast_latency = new.sse_broadcast_latency.clone();
 
             tokio::spawn(async move {
                 Metrics::register(
@@ -71,7 +72,7 @@ impl ApiMetrics {
                     (
                         "sse_broadcast_latency_seconds",
                         "Latency from Hermes receive_time to SSE send in seconds",
-                        new.sse_broadcast_latency.clone(),
+                        sse_broadcast_latency,
                     ),
                 )
                 .await;

+ 2 - 1
apps/hermes/server/src/api/ws.rs

@@ -106,6 +106,7 @@ impl WsMetrics {
 
         {
             let interactions = new.interactions.clone();
+            let ws_broadcast_latency = new.broadcast_latency.clone();
 
             tokio::spawn(async move {
                 Metrics::register(
@@ -123,7 +124,7 @@ impl WsMetrics {
                     (
                         "ws_broadcast_latency_seconds",
                         "Latency from Hermes receive_time to WS send in seconds",
-                        new.broadcast_latency.clone(),
+                        ws_broadcast_latency,
                     ),
                 )
                 .await;