changeset 2225:9d6c7cab31b0

refactor, though i think i want to remove this since it's redundant with metrics
author drewp@bigasterisk.com
date Tue, 23 May 2023 23:44:13 -0700
parents 0dd05e9d4ae7
children 1065c634e4a8
files light9/metrics.py light9/recentfps.py
diffstat 2 files changed, 30 insertions(+), 29 deletions(-) [+]
line wrap: on
line diff
--- a/light9/metrics.py	Tue May 23 23:43:07 2023 -0700
+++ b/light9/metrics.py	Tue May 23 23:44:13 2023 -0700
@@ -99,35 +99,6 @@
 
 
 
-metrics consumer side can do this with the changing counts:
-
-class RecentFps:
-  def __init__(self, window=20):
-    self.window = window
-    self.recentTimes = []
-
-  def mark(self):
-    now = time.time()
-    self.recentTimes.append(now)
-    self.recentTimes = self.recentTimes[-self.window:]
-
-  def rate(self):
-    def dec(innerFunc):
-      def f(*a, **kw):
-        self.mark()
-        return innerFunc(*a, **kw)
-      return f
-    return dec
-
-  def __call__(self):
-    if len(self.recentTimes) < 2:
-      return {}
-    recents = sorted(round(1 / (b - a), 3)
-                      for a, b in zip(self.recentTimes[:-1],
-                                      self.recentTimes[1:]))
-    avg = (len(self.recentTimes) - 1) / (
-      self.recentTimes[-1] - self.recentTimes[0])
-    return {'average': round(avg, 5), 'recents': recents}
 
 
 i think prometheus covers this one:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/light9/recentfps.py	Tue May 23 23:44:13 2023 -0700
@@ -0,0 +1,30 @@
+# server side version of what the metrics consumer does with changing counts
+import time
+
+class RecentFps:
+  def __init__(self, window=20):
+    self.window = window
+    self.recentTimes = []
+
+  def mark(self):
+    now = time.time()
+    self.recentTimes.append(now)
+    self.recentTimes = self.recentTimes[-self.window:]
+
+  def rate(self):
+    def dec(innerFunc):
+      def f(*a, **kw):
+        self.mark()
+        return innerFunc(*a, **kw)
+      return f
+    return dec
+
+  def __call__(self):
+    if len(self.recentTimes) < 2:
+      return {}
+    recents = sorted(round(1 / (b - a), 3)
+                      for a, b in zip(self.recentTimes[:-1],
+                                      self.recentTimes[1:]))
+    avg = (len(self.recentTimes) - 1) / (
+      self.recentTimes[-1] - self.recentTimes[0])
+    return {'average': round(avg, 5), 'recents': recents}