feat: add image route usage telemetry
This commit is contained in:
+26
@@ -1734,3 +1734,29 @@
|
||||
- 本期不暴露 cancel 路由;后续如需取消,仅允许取消 queued 并单独拆任务。
|
||||
- `image_base64` 不进 DB 原文,提交阶段解码为输入文件引用;异步结果不透传上游临时链接,只返回 cmhub 托管 URL。
|
||||
- 下一步:领取 T-615,给旧同步生图接口和新异步路径补结构化遥测,并形成旧同步接口弃用条件。
|
||||
|
||||
## 2026-07-08 实施:T-615 旧同步生图接口用量遥测 + 弃用口径
|
||||
|
||||
- 状态:DONE。
|
||||
- 代码变更:
|
||||
- 新增 `apps/api/telemetry.py`,集中构造并写入 `cmhub.api.generation_usage` 结构化日志事件 `generation_route_usage`。
|
||||
- `apps/api/views.py`:旧同步 `POST /api/v1/generate/image` 与新异步提交 `POST /api/v1/generate/image/tasks` 在参数错误、业务错误和成功返回前写遥测日志;旧同步成功响应和异步提交响应契约不变。
|
||||
- `apps/api/tests.py`:新增 3 条目标测试,覆盖旧同步成功日志、异步提交成功日志、异步余额不足错误日志,并断言日志只含白名单字段,不包含完整 API Key、prompt、`image_base64` 或 provider raw。
|
||||
- 文档变更:
|
||||
- `docs/04-architecture.md`、`docs/api.md`、`docs/deployment.md`:同步遥测字段、`X-Client-Version` 请求头建议、日志查看方式和旧同步接口弃用条件。
|
||||
- `README.md`、`docs/00-ai-start-here.md`、`docs/current-state.md`、`docs/project-brief.md`、`docs/project-onepager.md`:同步 T-615 已完成和后续生产观察口径。
|
||||
- `docs/06-tasks.md`:T-615 标记为 DONE。
|
||||
- 验证:
|
||||
- `py -3.12 -m py_compile apps\api\telemetry.py apps\api\views.py apps\api\tests.py`:通过。
|
||||
- `py -3.12 manage.py test apps.api.tests.GenerateApiTests.test_sync_image_usage_telemetry_logs_safe_client_version_and_key_identity apps.api.tests.GenerateApiTests.test_async_image_submit_usage_telemetry_logs_safe_success_event apps.api.tests.GenerateApiTests.test_async_image_submit_usage_telemetry_logs_error_code_without_sensitive_data --keepdb --noinput --verbosity 2`:通过,3 tests OK。
|
||||
- `py -3.12 manage.py check`:通过,0 issues。
|
||||
- `py -3.12 manage.py makemigrations --check --dry-run`:通过,No changes detected。
|
||||
- `py -3.12 manage.py test apps.api.tests.GenerateApiTests --keepdb --noinput --verbosity 2`:通过,31 tests OK。
|
||||
- `.\init.ps1`:通过(Python 3.12.3,依赖已满足,`manage.py check` 0 issues,打印启动命令)。
|
||||
- `git diff --check`:通过,仅 Windows CRLF 提示。
|
||||
- 测试环境现象:
|
||||
- 测试期仍保留 allauth `account.EmailAddress` 条件唯一约束在 MySQL 上不可创建的既有 `models.W036` 警告。
|
||||
- 决策:
|
||||
- T-615 第一版只做日志遥测,不新增 admin 报表或统计表;如后续需要报表,单独评估数据量、索引和保留周期。
|
||||
- 旧同步接口下线前必须继续保持成功响应兼容;待新版客户端默认异步、旧路调用归零或低于运营阈值一段时间后,再宣布 deprecated 并单独立下线任务。
|
||||
- 下一步:部署后观察 `generation_route_usage` 日志;继续处理真实支付回调到账闭环、客户端下载包发布等业务事项。
|
||||
|
||||
Reference in New Issue
Block a user