Mercurial > code > home > repos > light9
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}