新增 alloy/Dockerfile + config.alloy + build.sh + README + docs/observability/alloy-bake-plan.md. 当前 bind mount /tmp/alloy 仍稳定,本会话仅交付可执行件,实际 build 待低峰期执行.
2.1 KiB
2.1 KiB
alloy traces 配置 bake 计划 (Task #952)
必要性判断
- 必要性: 🟡 中等
- 理由: 当前 alloy 配置通过 bind mount 在
/tmp/alloy/config.alloy,在容器重启或宿主机 /tmp 清理时存在配置丢失风险。把配置 bake 进镜像让 alloy 容器自包含,符合容器 immutable 原则。 - 风险: 重建 alloy 镜像 + 重启容器期间,metrics 采集会中断 1-3 分钟,可能影响 Grafana 看板。
- 冲突: 与 P1-2 nginx / P1-1 测试无冲突,可独立执行。
交付物(本会话已完成)
alloy/Dockerfile:基础grafana/alloy:latest+ COPYconfig.alloy到/etc/alloy/config.alloy+ HEALTHCHECKalloy/config.alloy:与宿主的/tmp/alloy/config.alloy同步(1705 bytes)alloy/build.sh:自动 build + tag(产物:qihuaiflow-alloy:verified-{TS})alloy/README.md:使用说明 + 回滚指引
实际 bake(待低峰期执行)
cd /www/wwwroot/qihuaiflow/alloy && ./build.sh- 修改
docker-compose.ymlalloy 服务 image + 移除 bind mount docker compose up -d alloy- 验证 alloy health:
docker exec qihu-aiflow-alloy wget -q -O- http://localhost:12345/-/ready - 验证 metrics 还在采集:Grafana → Explore → Prometheus →
up查询
当前 traces 状态(已落地,不依赖本次 bake)
otelcol.receiver.otlp "default"监听 4317/4318- receiver 实现 TraceService proto,应用 OTel SDK 不再 UNIMPLEMENTED
- 故意不接 output 出口(等未来接 Tempo/Loki)
- 已修#876 Grafana 双 Claw 看板(
qihuaiflow-dual-claw-876)
不 bake 也能正常工作的原因
- 当前配置 bind mount 自
/tmp/alloy/config.alloy,只要宿主不删,容器每次启动都会拿到 /tmp在阿里云 Ubuntu 24.04 宿主上重启不清理(systemd 默认)- bind mount 在
docker-compose.yml里声明,容器启动时自动挂载
总结
- 现在做:Dockerfile + config + build.sh + README(本会话已交付,commit 在下一行)
- 不实际 build:避免非预期中断 metrics 采集
- 下次需要:低峰期单独会话执行
./build.sh+ docker-compose 切换