| scan_cron_stale | ALERT | {
"ok": false,
"minutes_since_last_run": 102,
"threshold_minutes": 10,
"file": "scan_cron.log",
"last_modified_at": "2026-03-19 00:53:13",
"expected_file": "scan_cron.log"
} |
| positions_cron_stale | ALERT | {
"ok": false,
"minutes_since_last_run": 102,
"threshold_minutes": 10,
"file": "positions_cron_runner.log",
"last_modified_at": "2026-03-19 00:53:13",
"expected_file": "positions_cron_runner.log"
} |
| no_trade_activity | OK | {
"ok": true,
"hours_since_last_event": 4.5,
"threshold_hours": 6,
"last_event_at": "2026-03-18 22:05:23"
} |
| sell_fail_spike | OK | {
"ok": true,
"failed_sell_count_24h": 0,
"threshold_count": 3
} |
| stuck_open_positions | OK | {
"ok": true,
"count": 0,
"threshold_hours": 24
} |
| reconcile_mismatch_spike | OK | {
"ok": true,
"mismatch_count_24h": 0,
"threshold_count": 3
} |