diff --git a/scripts/gateway-watchdog.sh b/scripts/gateway-watchdog.sh index 285cac6..04bad90 100755 --- a/scripts/gateway-watchdog.sh +++ b/scripts/gateway-watchdog.sh @@ -30,17 +30,23 @@ count_recent_429() { local cutoff=$(date -u -v-${CHECK_WINDOW}S '+%Y-%m-%dT%H:%M:%S' 2>/dev/null || date -u -d "${CHECK_WINDOW} seconds ago" '+%Y-%m-%dT%H:%M:%S') local count=0 - # 遍历所有 agent 的 session jsonl + # 只看 session jsonl(排除 trajectory) for jsonl in "$LOG_DIR"/*/sessions/*.jsonl; do + [[ "$jsonl" == *"trajectory"* ]] && continue [ -f "$jsonl" ] || continue # 只看最近修改的文件(性能优化) local mtime - mtime=$(stat -f '%m' "$jsonl" 2>/dev/null | tr -d ' ' || stat -c '%Y' "$jsonl" 2>/dev/null | tr -d ' ') + mtime=$(stat -f '%m' "$jsonl" 2>/dev/null | tr -d ' \n' || stat -c '%Y' "$jsonl" 2>/dev/null | tr -d ' \n') [ -z "$mtime" ] && continue - local now=$(date +%s) + local now + now=$(date +%s) local age=$(( now - mtime )) # 文件超过 CHECK_WINDOW 秒没修改就跳过 [ "$age" -gt "$CHECK_WINDOW" ] && continue + # 文件小于 100 字节就跳过(空/刚创建) + local fsize + fsize=$(wc -c < "$jsonl" | tr -d ' ') + [ "$fsize" -lt 100 ] && continue # 搜索 429 错误:errorCode=1305 或 errorMessage 含 "429" local found