Skip to content

Commit b4cb991

Browse files
committed
Merge branch 'main' into urucoder/workflow-release
2 parents 0baa79e + 2ed2152 commit b4cb991

File tree

2 files changed

+17
-11
lines changed

2 files changed

+17
-11
lines changed

sparrow/requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
aiosmtpd==1.4.6
2-
requests==2.32.3
2+
requests==2.32.4
33
urllib3==2.5.0
44
idna==3.7
55
charset-normalizer==3.3.2
@@ -17,7 +17,7 @@ torch==2.8.0
1717
torchvision==0.23.0
1818
torchaudio==2.8.0
1919
tritonclient[http]==2.26.0
20-
protobuf==4.25.3
20+
protobuf==4.25.8
2121
soundfile==0.12.1
2222
audioread==3.0.1
2323
pooch==1.8.2

sparrow/rest_client.py

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -185,10 +185,11 @@ def read_solar_generation():
185185
def append_metric_to_backlog(metric):
186186
"""Append a metrics record to the backlog file as a JSON line."""
187187
try:
188-
backlog_dir = os.path.dirname(metrics_backlog_file)
189-
os.makedirs(backlog_dir, exist_ok=True)
188+
os.makedirs(os.path.dirname(metrics_backlog_file), exist_ok=True)
189+
safe = dict(metric)
190+
safe.pop("auth_key", None)
190191
with open(metrics_backlog_file, "a") as f:
191-
f.write(json.dumps(metric) + "\n")
192+
f.write(json.dumps(safe) + "\n")
192193
logger.info("Appended current metric to backlog.")
193194
except Exception as e:
194195
logger.error(f"Failed to append metric to backlog: {e}")
@@ -223,7 +224,8 @@ def send_backlog_metrics():
223224

224225
for record in records:
225226
try:
226-
response = requests.post(system_metrics_url, json=record, timeout=10)
227+
payload = {**record, "auth_key": auth_key}
228+
response = requests.post(system_metrics_url, json=payload, timeout=10)
227229
response.raise_for_status()
228230
sent_count += 1
229231
except requests.exceptions.RequestException:
@@ -266,7 +268,8 @@ def upload_image_and_data(image_path, detection_data_list):
266268
"confidence": float(detection_data["Confidence Score"]),
267269
"date": detection_data["Date"],
268270
}
269-
logger.info(f"Sending image data to server: {data}")
271+
logger.info("Sending image data to server: %s",
272+
{k: v for k, v in data.items() if k != "auth_key"})
270273
response = requests.post(image_server_url, files=files, data=data)
271274
response.raise_for_status()
272275
except requests.exceptions.RequestException as e:
@@ -454,7 +457,8 @@ def gather_system_metrics():
454457
"network_received": psutil.net_io_counters().bytes_recv,
455458
"uptime_seconds": int(time.time() - psutil.boot_time()),
456459
}
457-
460+
461+
# Sensor reads must never explode the whole job
458462
try:
459463
env = read_env(bus, SENSOR_STATE)
460464
metrics["temperature_celsius"] = env.get("t_c")
@@ -484,7 +488,8 @@ def gather_system_metrics():
484488
metrics["vedirect_battery_voltage"] = round(ved_v, 2) if ved_v is not None else None
485489
metrics["vedirect_load_power_watts"] = round(ved_load_p, 2) if ved_load_p is not None else None
486490

487-
logger.info(f"System metrics gathered: {metrics}")
491+
logger.info("System metrics gathered: %s",
492+
{k: v for k, v in metrics.items() if k != "auth_key"})
488493
return metrics
489494

490495
def send_system_metrics():
@@ -503,8 +508,9 @@ def send_system_metrics():
503508
logger.info(f"Successfully sent system metrics: {response.status_code}")
504509
except requests.exceptions.RequestException as e:
505510
logger.error(f"Failed to POST system metrics: {e}")
506-
append_metric_to_backlog(metrics)
511+
append_metric_to_backlog(metrics) # still have 'metrics' here
507512
except Exception as e:
513+
# If we failed before 'metrics' existed, at least log it clearly
508514
logger.critical(f"send_system_metrics() unexpected error before POST: {e}", exc_info=True)
509515

510516

@@ -627,4 +633,4 @@ def schedule_uploads():
627633
logger.warning(f"BME688 not detected or unreadable at 0x{bme_addr:02X}; temperature/humidity/pressure will be None.")
628634

629635
# Kick off the scheduler loop
630-
schedule_uploads()
636+
schedule_uploads()

0 commit comments

Comments
 (0)