metrics
Browse files- App/Monitor/monitorRoutes.py +39 -0
- App/app.py +2 -0
- requirements.txt +1 -0
App/Monitor/monitorRoutes.py
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from fastapi import APIRouter, Request
|
2 |
+
import psutil
|
3 |
+
import json
|
4 |
+
from App import bot
|
5 |
+
|
6 |
+
monitor_router = APIRouter(tags=["monitor"])
|
7 |
+
|
8 |
+
|
9 |
+
@monitor_router.get("/metrics")
|
10 |
+
def get_metrics():
|
11 |
+
# Get CPU usage
|
12 |
+
cpu_usage = psutil.cpu_percent()
|
13 |
+
|
14 |
+
# Get memory usage
|
15 |
+
memory_usage = psutil.virtual_memory().percent
|
16 |
+
|
17 |
+
# Get disk usage
|
18 |
+
disk_usage = psutil.disk_usage("/").percent
|
19 |
+
|
20 |
+
# Get network statistics
|
21 |
+
network_stats = psutil.net_io_counters()
|
22 |
+
|
23 |
+
# Create a dictionary with the metrics
|
24 |
+
metrics = {
|
25 |
+
"cpu_usage": cpu_usage,
|
26 |
+
"memory_usage": memory_usage,
|
27 |
+
"disk_usage": disk_usage,
|
28 |
+
"network_stats": {
|
29 |
+
"bytes_sent": network_stats.bytes_sent,
|
30 |
+
"bytes_received": network_stats.bytes_recv,
|
31 |
+
"packets_sent": network_stats.packets_sent,
|
32 |
+
"packets_received": network_stats.packets_recv,
|
33 |
+
},
|
34 |
+
}
|
35 |
+
|
36 |
+
# Convert the dictionary to a nicely formatted JSON string
|
37 |
+
json_string = json.dumps(metrics, indent=4)
|
38 |
+
|
39 |
+
return json_string
|
App/app.py
CHANGED
@@ -4,6 +4,7 @@ from .Users.UserRoutes import user_router
|
|
4 |
from .modelInit import models, database
|
5 |
from .Transcription.TranscriptionRoutes import transcription_router
|
6 |
from .Streaming.StreamingRoutes import streaming_router
|
|
|
7 |
from fastapi.middleware.cors import CORSMiddleware
|
8 |
import logging
|
9 |
|
@@ -54,3 +55,4 @@ async def landing_page():
|
|
54 |
app.include_router(user_router)
|
55 |
app.include_router(transcription_router)
|
56 |
app.include_router(streaming_router)
|
|
|
|
4 |
from .modelInit import models, database
|
5 |
from .Transcription.TranscriptionRoutes import transcription_router
|
6 |
from .Streaming.StreamingRoutes import streaming_router
|
7 |
+
from .Monitor.monitorRoutes import monitor_router
|
8 |
from fastapi.middleware.cors import CORSMiddleware
|
9 |
import logging
|
10 |
|
|
|
55 |
app.include_router(user_router)
|
56 |
app.include_router(transcription_router)
|
57 |
app.include_router(streaming_router)
|
58 |
+
app.include_router(monitor_router)
|
requirements.txt
CHANGED
@@ -18,6 +18,7 @@ pydantic[email]
|
|
18 |
uvicorn==0.21.1
|
19 |
gunicorn
|
20 |
ujson
|
|
|
21 |
orm[mysql]
|
22 |
celery
|
23 |
python-multipart
|
|
|
18 |
uvicorn==0.21.1
|
19 |
gunicorn
|
20 |
ujson
|
21 |
+
psutil
|
22 |
orm[mysql]
|
23 |
celery
|
24 |
python-multipart
|