Mbonea commited on
Commit
a2b82e9
1 Parent(s): 2e0dcd8
Files changed (3) hide show
  1. App/Monitor/monitorRoutes.py +39 -0
  2. App/app.py +2 -0
  3. 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