#!/bin/bash # 优化后观察数据采集(2026-09-05 建立,post-optimize 周观察) # 覆盖待观察项: # 1. LanceDB 膨胀速率(周 VACUUM 是否够用,2-3 周后决定频率) # 2. 104 bge 稳定性(connection 污染是否复发 → proxy 降级次数) # 3. consolidate distill 在 compact 后文件上的健康(journal 错误) # 4. CBM 周日首跑状态 # 5. 磁盘趋势 # 输出结构化数据供 agent 分析投递。静默采集,无输出逻辑由 agent 判断。 export XDG_RUNTIME_DIR=/run/user/$(id -u) echo "=== 观察时间 $(date '+%F %T') ===" echo "" echo "── 1. LanceDB 体积与版本趋势 ──" for t in memories episodes; do d=$(du -sh /var/lib/memoryweave/${t}.lance 2>/dev/null | cut -f1) v=$(ls /var/lib/memoryweave/${t}.lance/_versions/ 2>/dev/null | wc -l) rows=$(ls /var/lib/memoryweave/${t}.lance/*.lance 2>/dev/null | head -0; echo "?") echo " ${t}.lance: ${d} / ${v} 版本" done echo " memoryweave 总量: $(du -sh /var/lib/memoryweave 2>/dev/null | cut -f1)" echo " 最近 VACUUM(lance-vacuum.log 尾部 6 行):" tail -6 /home/muc/.logs/lance-vacuum.log 2>/dev/null | sed 's/^/ /' echo "" echo "── 2. 104 bge 链路稳定性(proxy 降级统计)──" total_fail=$(grep -c '远端 embedding 实发失败' /tmp/bge_proxy.log 2>/dev/null || echo 0) last_fail=$(grep '远端 embedding 实发失败' /tmp/bge_proxy.log 2>/dev/null | tail -1 | awk '{print $2, $3}') cur_route=$(curl -s -m 8 -o /dev/null -D - -X POST http://127.0.0.1:8000/v1/embeddings -H 'Content-Type: application/json' -d '{"input":["observe"],"model":"bge-m3"}' 2>/dev/null | grep -i X-BGE-Proxy | tr -d '\r') echo " 累计降级次数(自proxy起): ${total_fail}" echo " 最近一次降级: ${last_fail:-无}" echo " 当前选路: ${cur_route:-未知}" echo " bge-embed(8001): $(systemctl --user is-active bge-embed.service 2>/dev/null || echo inactive)" echo "" echo "── 3. consolidate distill 健康 ──" con_err=$(journalctl --user -u zhiyi-consolidate --since "7 days ago" 2>/dev/null | grep -ciE 'error|panic|fatal' || echo 0) con_state=$(systemctl --user is-active zhiyi-consolidate.service 2>/dev/null || echo down) zhi_err=$(journalctl --user -u zhiyid --since "7 days ago" 2>/dev/null | grep -ciE 'error|panic|fatal' || echo 0) zhi_state=$(systemctl --user is-active zhiyid.service 2>/dev/null || echo down) echo " consolidate: ${con_state} (7d 错误 ${con_err})" echo " zhiyid: ${zhi_state} (7d 错误 ${zhi_err})" echo " consolidate RSS: $(ps -o rss= -p $(pgrep -f zhiyi-consolidate | head -1) 2>/dev/null | awk '{printf "%.0fMB", $1/1024}')" echo "" echo "── 4. CBM 周日索引状态 ──" echo " 最近 CBM cron 运行: $(journalctl --user -u hermes-gateway --since '7 days ago' 2>/dev/null | grep -i cbm | tail -1 | cut -c1-80 || echo 无记录)" echo "" echo "── 5. 磁盘趋势 ──" df -h / | tail -1 echo " backup/快照目录: $(du -sh ~/.hermes/snapshots ~/.hermes/backups /home/muc/.memoryweave* 2>/dev/null | sort -rh | head -3 | tr '\n' ' ')"