Omarelrayes commited on
Commit
9d21672
·
verified ·
1 Parent(s): 7029f70

Delete app/services/metrics.py

Browse files
Files changed (1) hide show
  1. app/services/metrics.py +0 -74
app/services/metrics.py DELETED
@@ -1,74 +0,0 @@
1
- # app/monitoring/metrics.py
2
- import time
3
- from typing import Dict, Any
4
- from starlette.middleware.base import BaseHTTPMiddleware
5
- from starlette.requests import Request
6
- from starlette.responses import Response
7
-
8
-
9
- # =========================
10
- # Simple Metrics Storage
11
- # =========================
12
- _metrics: Dict[str, Any] = {
13
- "total_requests": 0,
14
- "requests_by_endpoint": {},
15
- "requests_by_status": {},
16
- "total_latency_ms": 0.0,
17
- "start_time": time.time(),
18
- }
19
-
20
-
21
- # =========================
22
- # Metrics Middleware
23
- # =========================
24
- class MetricsMiddleware(BaseHTTPMiddleware):
25
- """Middleware to collect request metrics"""
26
-
27
- async def dispatch(self, request: Request, call_next):
28
- start_time = time.time()
29
-
30
- # Process request
31
- response = await call_next(request)
32
-
33
- # Calculate latency
34
- process_time = (time.time() - start_time) * 1000 # ms
35
-
36
- # Update metrics
37
- _metrics["total_requests"] += 1
38
- _metrics["total_latency_ms"] += process_time
39
-
40
- endpoint = request.url.path
41
- _metrics["requests_by_endpoint"][endpoint] = (
42
- _metrics["requests_by_endpoint"].get(endpoint, 0) + 1
43
- )
44
-
45
- status = str(response.status_code)
46
- _metrics["requests_by_status"][status] = (
47
- _metrics["requests_by_status"].get(status, 0) + 1
48
- )
49
-
50
- return response
51
-
52
-
53
- # =========================
54
- # Metrics Endpoint
55
- # =========================
56
- def metrics_endpoint(request: Request) -> Dict[str, Any]:
57
- """
58
- Return metrics in JSON format.
59
- Compatible with Prometheus text format if needed.
60
- """
61
- uptime = time.time() - _metrics["start_time"]
62
- avg_latency = (
63
- _metrics["total_latency_ms"] / _metrics["total_requests"]
64
- if _metrics["total_requests"] > 0
65
- else 0.0
66
- )
67
-
68
- return {
69
- "total_requests": _metrics["total_requests"],
70
- "requests_by_endpoint": _metrics["requests_by_endpoint"],
71
- "requests_by_status": _metrics["requests_by_status"],
72
- "average_latency_ms": round(avg_latency, 2),
73
- "uptime_seconds": round(uptime, 2),
74
- }