mirror of
https://git.ianrenton.com/ian/spothole.git
synced 2026-09-20 14:27:42 +00:00
Fix a bug where solar conditions and status data were not properly persisted to disk between restarts. Release v2.0.5
This commit is contained in:
+16
-14
@@ -25,8 +25,9 @@ class StatusReporter:
|
||||
self._stop_event = Event()
|
||||
self._startup_time = datetime.now(pytz.UTC)
|
||||
|
||||
DATA_STORE.status_data["software_version"] = SOFTWARE_VERSION
|
||||
DATA_STORE.status_data["server_owner_callsign"] = SERVER_OWNER_CALLSIGN
|
||||
DATA_STORE.status.get()["software_version"] = SOFTWARE_VERSION
|
||||
DATA_STORE.status.get()["server_owner_callsign"] = SERVER_OWNER_CALLSIGN
|
||||
DATA_STORE.status.store()
|
||||
|
||||
def start(self):
|
||||
"""Start the reporter thread"""
|
||||
@@ -50,11 +51,11 @@ class StatusReporter:
|
||||
def _report(self):
|
||||
"""Write status information"""
|
||||
|
||||
DATA_STORE.status_data["uptime"] = (datetime.now(pytz.UTC) - self._startup_time).total_seconds()
|
||||
DATA_STORE.status_data["mem_use_mb"] = round(psutil.Process(os.getpid()).memory_info().rss / (1024 * 1024), 3)
|
||||
DATA_STORE.status_data["num_spots"] = len(DATA_STORE.spots.values())
|
||||
DATA_STORE.status_data["num_alerts"] = len(DATA_STORE.alerts.values())
|
||||
DATA_STORE.status_data["spot_providers"] = [
|
||||
DATA_STORE.status.get()["uptime"] = (datetime.now(pytz.UTC) - self._startup_time).total_seconds()
|
||||
DATA_STORE.status.get()["mem_use_mb"] = round(psutil.Process(os.getpid()).memory_info().rss / (1024 * 1024), 3)
|
||||
DATA_STORE.status.get()["num_spots"] = len(DATA_STORE.spots.values())
|
||||
DATA_STORE.status.get()["num_alerts"] = len(DATA_STORE.alerts.values())
|
||||
DATA_STORE.status.get()["spot_providers"] = [
|
||||
{
|
||||
"name": p.name,
|
||||
"enabled": p.enabled,
|
||||
@@ -69,7 +70,7 @@ class StatusReporter:
|
||||
}
|
||||
for p in DATA_PROVIDERS.spot_providers
|
||||
]
|
||||
DATA_STORE.status_data["alert_providers"] = [
|
||||
DATA_STORE.status.get()["alert_providers"] = [
|
||||
{
|
||||
"name": p.name,
|
||||
"enabled": p.enabled,
|
||||
@@ -80,7 +81,7 @@ class StatusReporter:
|
||||
}
|
||||
for p in DATA_PROVIDERS.alert_providers
|
||||
]
|
||||
DATA_STORE.status_data["solar_condition_providers"] = [
|
||||
DATA_STORE.status.get()["solar_condition_providers"] = [
|
||||
{
|
||||
"name": p.name,
|
||||
"enabled": p.enabled,
|
||||
@@ -91,7 +92,7 @@ class StatusReporter:
|
||||
}
|
||||
for p in DATA_PROVIDERS.solar_condition_providers
|
||||
]
|
||||
DATA_STORE.status_data["static_data_providers"] = [
|
||||
DATA_STORE.status.get()["static_data_providers"] = [
|
||||
{
|
||||
"name": p.name,
|
||||
"enabled": p.enabled,
|
||||
@@ -102,7 +103,7 @@ class StatusReporter:
|
||||
}
|
||||
for p in DATA_PROVIDERS.static_data_providers
|
||||
]
|
||||
DATA_STORE.status_data["sig_ref_data_providers"] = [
|
||||
DATA_STORE.status.get()["sig_ref_data_providers"] = [
|
||||
{
|
||||
"sig_name": p.sig_name,
|
||||
"enabled": p.enabled,
|
||||
@@ -114,7 +115,7 @@ class StatusReporter:
|
||||
}
|
||||
for p in DATA_PROVIDERS.sig_ref_data_providers
|
||||
]
|
||||
DATA_STORE.status_data["callsign_data_providers"] = [
|
||||
DATA_STORE.status.get()["callsign_data_providers"] = [
|
||||
{
|
||||
"name": p.name,
|
||||
"enabled": p.enabled,
|
||||
@@ -126,13 +127,13 @@ class StatusReporter:
|
||||
}
|
||||
for p in DATA_PROVIDERS.callsign_data_providers
|
||||
]
|
||||
DATA_STORE.status_data["cleanup"] = {
|
||||
DATA_STORE.status.get()["cleanup"] = {
|
||||
"status": CLEANUP_TIMER.status,
|
||||
"last_ran": CLEANUP_TIMER.last_cleanup_time.replace(tzinfo=pytz.UTC).timestamp()
|
||||
if CLEANUP_TIMER.last_cleanup_time
|
||||
else 0,
|
||||
}
|
||||
DATA_STORE.status_data["webserver"] = {
|
||||
DATA_STORE.status.get()["webserver"] = {
|
||||
"status": WEB_SERVER.web_server_metrics["status"],
|
||||
"last_api_access": WEB_SERVER.web_server_metrics["last_api_access_time"]
|
||||
.replace(tzinfo=pytz.UTC)
|
||||
@@ -147,6 +148,7 @@ class StatusReporter:
|
||||
else 0,
|
||||
"page_access_count": WEB_SERVER.web_server_metrics["page_access_counter"],
|
||||
}
|
||||
DATA_STORE.status.store()
|
||||
|
||||
# Update Prometheus metrics
|
||||
memory_use_gauge.set(psutil.Process(os.getpid()).memory_info().rss)
|
||||
|
||||
Reference in New Issue
Block a user