接入 OTel 链路追踪 + 镜像默认启用

抓取-解析链路原本只有日志,出现"抓回内容但解析不出预期字段"时定位慢。
接入 OpenTelemetry traces(FastAPI/httpx 自动 + 手写 fetch/parse span),
解析失败时把页面 HTML 作为 span event 上报,便于事后复现。
Dockerfile 默认开启,镜像一启动即导出到自建 OTLP endpoint。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-07-27 15:43:19 +08:00
co-authored by Claude Opus 4.6
parent 5376ced511
commit 2b7db521c4
13 changed files with 1021 additions and 203 deletions
+13
View File
@@ -63,3 +63,16 @@ RAKUTEN_AUTH_STATE_DIR=.auth
# 下单金额上限(日元):实际应付超过该值直接拒绝提交,防止解析出错或页面改版
# 导致买到远超预期的订单。设为 0 表示不设上限(不建议)。
RAKUTEN_ORDER_MAX_TOTAL_YEN=30000
# ---- OpenTelemetry traces(可选;默认关闭)----
# 启用后把抓取-解析链路以 span 导出到 OTLP/HTTP endpoint,
# 用于排查"抓到的内容为什么解析不出预期字段"。
# 解析失败时会把页面 HTML 作为 span event 上报(上限可配),便于事后复现。
RAKUTEN_OTEL_ENABLED=false
RAKUTEN_OTEL_ENDPOINT=https://oltp.jerryyan.top/v1/traces
# 服务名按服务覆盖;不设时两侧 main.py 分别按 rakuten-scraping / rakuten-trading 落地
RAKUTEN_OTEL_SERVICE_NAME=
# OTLP 鉴权头(形如 key=val,key=val);当前 endpoint 裸跑,留空
RAKUTEN_OTEL_HEADERS=
# 失败 HTML 快照上限字节(默认 2MB,超出截断并标注 truncated=true)
RAKUTEN_OTEL_SNAPSHOT_MAX_BYTES=2000000