From 9e0c5692ee3ebbfc0455df5b1d1a6e004a98ecd0 Mon Sep 17 00:00:00 2001 From: openhands Date: Fri, 22 Nov 2024 16:00:56 +0000 Subject: [PATCH] Add system resource metrics to /server_info endpoint --- openhands/runtime/action_execution_server.py | 34 +++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/openhands/runtime/action_execution_server.py b/openhands/runtime/action_execution_server.py index 1251aa346838..2ee8f4d7c3d2 100644 --- a/openhands/runtime/action_execution_server.py +++ b/openhands/runtime/action_execution_server.py @@ -11,6 +11,7 @@ import io import mimetypes import os +import psutil import shutil import tempfile import time @@ -420,7 +421,38 @@ async def get_server_info(): current_time = time.time() uptime = current_time - client.start_time idle_time = current_time - client.last_execution_time - return {'uptime': uptime, 'idle_time': idle_time} + + # Get system resource usage + process = psutil.Process() + cpu_percent = process.cpu_percent() + memory_info = process.memory_info() + disk_usage = psutil.disk_usage('/') + io_counters = process.io_counters() + + return { + 'uptime': uptime, + 'idle_time': idle_time, + 'resources': { + 'cpu_percent': cpu_percent, + 'memory': { + 'rss': memory_info.rss, + 'vms': memory_info.vms, + 'percent': process.memory_percent() + }, + 'disk': { + 'total': disk_usage.total, + 'used': disk_usage.used, + 'free': disk_usage.free, + 'percent': disk_usage.percent + }, + 'io': { + 'read_bytes': io_counters.read_bytes, + 'write_bytes': io_counters.write_bytes, + 'read_count': io_counters.read_count, + 'write_count': io_counters.write_count + } + } + } @app.post('/execute_action') async def execute_action(action_request: ActionRequest):