xiaowei-system/scripts/post-optimize-observe.sh

53 lines
3.0 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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 " 最近 VACUUMlance-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' ' ')"