-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathanalyzer.py
More file actions
25 lines (21 loc) · 800 Bytes
/
analyzer.py
File metadata and controls
25 lines (21 loc) · 800 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
def analyze_results(results):
total = len(results)
successes = [r for r in results if r["success"]]
failures = total - len(successes)
times = [r["time"] for r in successes if r["time"] is not None]
avg_time = sum(times) / len(times) if times else 0
max_time = max(times) if times else 0
success_rate = (len(successes) / total) * 100 if total else 0
if success_rate > 95 and avg_time < 0.5:
verdict = "Stable"
elif success_rate > 80:
verdict = "Degrading"
else:
verdict = "Unstable"
return {
"total_requests": total,
"success_rate": round(success_rate, 2),
"avg_response_time": round(avg_time, 3),
"max_response_time": round(max_time, 3),
"verdict": verdict
}