proxywatchd: delay peak measurement until after startup
This commit is contained in:
@@ -302,9 +302,10 @@ class Stats():
|
|||||||
self.last_history_tested = 0
|
self.last_history_tested = 0
|
||||||
self.last_history_passed = 0
|
self.last_history_passed = 0
|
||||||
|
|
||||||
# Peak values
|
# Peak values (delayed measurement to avoid startup anomalies)
|
||||||
self.peak_rate = 0.0
|
self.peak_rate = 0.0
|
||||||
self.peak_success_rate = 0.0
|
self.peak_success_rate = 0.0
|
||||||
|
self.peak_grace_period = 30 # seconds before recording peaks
|
||||||
self.min_latency = float('inf')
|
self.min_latency = float('inf')
|
||||||
self.max_latency = 0.0
|
self.max_latency = 0.0
|
||||||
|
|
||||||
@@ -423,7 +424,9 @@ class Stats():
|
|||||||
self.rate_history.append(round(rate, 2))
|
self.rate_history.append(round(rate, 2))
|
||||||
if len(self.rate_history) > self.HISTORY_SIZE:
|
if len(self.rate_history) > self.HISTORY_SIZE:
|
||||||
self.rate_history.pop(0)
|
self.rate_history.pop(0)
|
||||||
if rate > self.peak_rate and rate <= 100:
|
# Only record peaks after grace period (avoid startup anomalies)
|
||||||
|
uptime = now - self.start_time
|
||||||
|
if uptime >= self.peak_grace_period and rate > self.peak_rate and rate <= 100:
|
||||||
self.peak_rate = rate
|
self.peak_rate = rate
|
||||||
|
|
||||||
# Success rate - with sanity checks
|
# Success rate - with sanity checks
|
||||||
@@ -436,7 +439,7 @@ class Stats():
|
|||||||
self.success_rate_history.append(round(sr, 1))
|
self.success_rate_history.append(round(sr, 1))
|
||||||
if len(self.success_rate_history) > self.HISTORY_SIZE:
|
if len(self.success_rate_history) > self.HISTORY_SIZE:
|
||||||
self.success_rate_history.pop(0)
|
self.success_rate_history.pop(0)
|
||||||
if sr > self.peak_success_rate:
|
if uptime >= self.peak_grace_period and sr > self.peak_success_rate:
|
||||||
self.peak_success_rate = sr
|
self.peak_success_rate = sr
|
||||||
|
|
||||||
# Average latency for this interval
|
# Average latency for this interval
|
||||||
|
|||||||
Reference in New Issue
Block a user