Some checks failed
CI / test (pull_request) Has been cancelled
- add morning report launcher\n- add overnight stop script\n- add watchdog health monitor script\n\nRefs #137
55 lines
1.6 KiB
Bash
Executable File
55 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Morning summary for overnight run logs.
|
|
|
|
set -euo pipefail
|
|
|
|
LOG_DIR="${LOG_DIR:-data/overnight}"
|
|
|
|
if [ ! -d "$LOG_DIR" ]; then
|
|
echo "로그 디렉터리가 없습니다: $LOG_DIR"
|
|
exit 1
|
|
fi
|
|
|
|
latest_run="$(ls -1t "$LOG_DIR"/run_*.log 2>/dev/null | head -n 1 || true)"
|
|
latest_watchdog="$(ls -1t "$LOG_DIR"/watchdog_*.log 2>/dev/null | head -n 1 || true)"
|
|
|
|
if [ -z "$latest_run" ]; then
|
|
echo "run 로그가 없습니다: $LOG_DIR/run_*.log"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Overnight report"
|
|
echo "- run log: $latest_run"
|
|
if [ -n "$latest_watchdog" ]; then
|
|
echo "- watchdog log: $latest_watchdog"
|
|
fi
|
|
|
|
start_line="$(head -n 1 "$latest_run" || true)"
|
|
end_line="$(tail -n 1 "$latest_run" || true)"
|
|
|
|
info_count="$(rg -c '"level": "INFO"' "$latest_run" || true)"
|
|
warn_count="$(rg -c '"level": "WARNING"' "$latest_run" || true)"
|
|
error_count="$(rg -c '"level": "ERROR"' "$latest_run" || true)"
|
|
critical_count="$(rg -c '"level": "CRITICAL"' "$latest_run" || true)"
|
|
traceback_count="$(rg -c 'Traceback' "$latest_run" || true)"
|
|
|
|
echo "- start: ${start_line:-N/A}"
|
|
echo "- end: ${end_line:-N/A}"
|
|
echo "- INFO: ${info_count:-0}"
|
|
echo "- WARNING: ${warn_count:-0}"
|
|
echo "- ERROR: ${error_count:-0}"
|
|
echo "- CRITICAL: ${critical_count:-0}"
|
|
echo "- Traceback: ${traceback_count:-0}"
|
|
|
|
if [ -n "$latest_watchdog" ]; then
|
|
watchdog_errors="$(rg -c '\[ERROR\]' "$latest_watchdog" || true)"
|
|
echo "- watchdog ERROR: ${watchdog_errors:-0}"
|
|
echo ""
|
|
echo "최근 watchdog 로그:"
|
|
tail -n 5 "$latest_watchdog" || true
|
|
fi
|
|
|
|
echo ""
|
|
echo "최근 앱 로그:"
|
|
tail -n 20 "$latest_run" || true
|