瀏覽代碼

Added push interval metric

Mike Rolish 1 月之前
父節點
當前提交
85d7d560d1
共有 2 個文件被更改,包括 17 次插入0 次删除
  1. 5 0
      apps/hip-3-pusher/src/pusher/metrics.py
  2. 12 0
      apps/hip-3-pusher/src/pusher/publisher.py

+ 5 - 0
apps/hip-3-pusher/src/pusher/metrics.py

@@ -33,3 +33,8 @@ class Metrics:
             name="hip_3_pusher_failed_push_count",
             description="Number of failed push attempts",
         )
+        self.push_interval_histogram = self.meter.create_histogram(
+            name="hip_3_pusher_push_interval",
+            description="Interval between push requests (seconds)",
+            unit="s",
+        )

+ 12 - 0
apps/hip-3-pusher/src/pusher/publisher.py

@@ -1,4 +1,6 @@
 import asyncio
+import time
+
 from loguru import logger
 from pathlib import Path
 
@@ -46,6 +48,7 @@ class Publisher:
         self.price_state = price_state
         self.metrics = metrics
         self.metrics_labels = {"dex": self.market_name}
+        self.last_push_time = time.time()
 
     async def run(self):
         while True:
@@ -98,6 +101,8 @@ class Publisher:
         else:
             logger.debug("push disabled")
 
+        self._record_push_interval_metric()
+
     def _send_update(self, oracle_pxs, all_mark_pxs, external_perp_pxs):
         for exchange in self.publisher_exchanges:
             try:
@@ -120,3 +125,10 @@ class Publisher:
         elif status == "err":
             self.metrics.failed_push_counter.add(1, self.metrics_labels)
             logger.error("publish: publish error: {}", response)
+
+    def _record_push_interval_metric(self):
+        now = time.time()
+        push_interval = now - self.last_push_time
+        self.metrics.push_interval_histogram.record(push_interval, self.metrics_labels)
+        self.last_push_time = now
+        logger.debug("Push interval: {}", push_interval)