Update /health endpoint to be in local timezone
This commit is contained in:
parent
e72c3ec19f
commit
15d5389564
@ -100,7 +100,7 @@ class FreqtradeBot(LoggingMixin):
|
|||||||
self._exit_lock = Lock()
|
self._exit_lock = Lock()
|
||||||
LoggingMixin.__init__(self, logger, timeframe_to_seconds(self.strategy.timeframe))
|
LoggingMixin.__init__(self, logger, timeframe_to_seconds(self.strategy.timeframe))
|
||||||
|
|
||||||
self.last_process = datetime.utcfromtimestamp(0.0)
|
self.last_process = datetime(1970, 1, 1, tzinfo=timezone.utc)
|
||||||
|
|
||||||
def notify_status(self, msg: str) -> None:
|
def notify_status(self, msg: str) -> None:
|
||||||
"""
|
"""
|
||||||
@ -189,7 +189,7 @@ class FreqtradeBot(LoggingMixin):
|
|||||||
self.enter_positions()
|
self.enter_positions()
|
||||||
|
|
||||||
Trade.commit()
|
Trade.commit()
|
||||||
self.last_process = datetime.utcnow()
|
self.last_process = datetime.now(timezone.utc)
|
||||||
|
|
||||||
def process_stopped(self) -> None:
|
def process_stopped(self) -> None:
|
||||||
"""
|
"""
|
||||||
|
@ -386,3 +386,4 @@ class SysInfo(BaseModel):
|
|||||||
|
|
||||||
class Health(BaseModel):
|
class Health(BaseModel):
|
||||||
last_process: datetime
|
last_process: datetime
|
||||||
|
last_process_ts: int
|
||||||
|
@ -10,6 +10,7 @@ from typing import Any, Dict, List, Optional, Tuple, Union
|
|||||||
import arrow
|
import arrow
|
||||||
import psutil
|
import psutil
|
||||||
from dateutil.relativedelta import relativedelta
|
from dateutil.relativedelta import relativedelta
|
||||||
|
from dateutil.tz import tzlocal
|
||||||
from numpy import NAN, inf, int64, mean
|
from numpy import NAN, inf, int64, mean
|
||||||
from pandas import DataFrame
|
from pandas import DataFrame
|
||||||
|
|
||||||
@ -1031,7 +1032,10 @@ class RPC:
|
|||||||
"ram_pct": psutil.virtual_memory().percent
|
"ram_pct": psutil.virtual_memory().percent
|
||||||
}
|
}
|
||||||
|
|
||||||
def _health(self) -> Dict[str, str]:
|
def _health(self) -> Dict[str, Union[str, int]]:
|
||||||
|
last_p = self._freqtrade.last_process
|
||||||
return {
|
return {
|
||||||
'last_process': str(self._freqtrade.last_process)
|
'last_process': str(last_p),
|
||||||
|
'last_process_loc': last_p.astimezone(tzlocal()).strftime(DATETIME_PRINT_FORMAT),
|
||||||
|
'last_process_ts': int(last_p.timestamp()),
|
||||||
}
|
}
|
||||||
|
@ -1319,8 +1319,7 @@ class Telegram(RPCHandler):
|
|||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
health = self._rpc._health()
|
health = self._rpc._health()
|
||||||
message = f"Last process: `{health['last_process']}`"
|
message = f"Last process: `{health['last_process_loc']}`"
|
||||||
logger.debug(message)
|
|
||||||
self._send_msg(message)
|
self._send_msg(message)
|
||||||
except RPCException as e:
|
except RPCException as e:
|
||||||
self._send_msg(str(e))
|
self._send_msg(str(e))
|
||||||
|
@ -1280,4 +1280,5 @@ def test_rpc_health(mocker, default_conf) -> None:
|
|||||||
freqtradebot = get_patched_freqtradebot(mocker, default_conf)
|
freqtradebot = get_patched_freqtradebot(mocker, default_conf)
|
||||||
rpc = RPC(freqtradebot)
|
rpc = RPC(freqtradebot)
|
||||||
result = rpc._health()
|
result = rpc._health()
|
||||||
assert result['last_process'] == '1970-01-01 00:00:00'
|
assert result['last_process'] == '1970-01-01 00:00:00+00:00'
|
||||||
|
assert result['last_process_ts'] == 0
|
||||||
|
@ -1451,4 +1451,5 @@ def test_health(botclient):
|
|||||||
|
|
||||||
assert_response(rc)
|
assert_response(rc)
|
||||||
ret = rc.json()
|
ret = rc.json()
|
||||||
assert ret['last_process'] == '1970-01-01T00:00:00'
|
assert ret['last_process_ts'] == 0
|
||||||
|
assert ret['last_process'] == '1970-01-01T00:00:00+00:00'
|
||||||
|
Loading…
Reference in New Issue
Block a user