Add CPU,RAM sysinfo support to the REST API to help with bot system monitoring

This commit is contained in:
froggleston 2021-09-25 15:48:42 +01:00
parent 4c268847d4
commit 097da448e2
4 changed files with 15 additions and 1 deletions

View File

@ -259,3 +259,7 @@ def list_available_pairs(timeframe: Optional[str] = None, stake_currency: Option
'pair_interval': pair_interval,
}
return result
@router.get('/sysinfo', tags=['info'])
def sysinfo(rpc: RPC = Depends(get_rpc)):
return rpc._rpc_sysinfo()

View File

@ -1,7 +1,7 @@
"""
This module contains class to define a RPC communications
"""
import logging
import logging, psutil
from abc import abstractmethod
from datetime import date, datetime, timedelta, timezone
from math import isnan
@ -870,3 +870,6 @@ class RPC:
'subplots' not in self._freqtrade.strategy.plot_config):
self._freqtrade.strategy.plot_config['subplots'] = {}
return self._freqtrade.strategy.plot_config
def _rpc_sysinfo(self) -> Dict[str, Any]:
return {"cpu_pct": psutil.cpu_percent(interval=1, percpu=True), "ram_pct": psutil.virtual_memory().percent}

View File

@ -36,6 +36,7 @@ fastapi==0.68.1
uvicorn==0.15.0
pyjwt==2.1.0
aiofiles==0.7.0
psutil==5.8.0
# Support for colorized terminal output
colorama==0.4.4

View File

@ -334,6 +334,12 @@ class FtRestClient():
"timerange": timerange if timerange else '',
})
def sysinfo(self):
"""Provides system information (CPU, RAM usage)
:return: json object
"""
return self._get("sysinfo")
def add_arguments():
parser = argparse.ArgumentParser()