Files
hair/docs/最近一周调用统计_20260915-20260921.md

146 lines
6.5 KiB
Markdown
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.
# 最近一周接口调用统计
- **统计窗口**:2026-09-15 00:00:00 ~ 2026-09-21 10:13:00(北京时间,共 7 个自然日;21 日为截至上午的部分数据)
- **统计对象**:网关 `hair.xiangsilian.com` 对外业务接口(`POST /api/v1/...`)
- **不含**:健康检查、静态页、扫描探测(如 `GET /api/.env`)
- **生成时间**:2026-09-21 10:13
## 1. 口径
| 指标 | 定义 |
|------|------|
| 调用量 | 网关访问日志中,下列业务路径的完成次数 |
| 业务成功 | HTTP 200 **且** 响应 JSON `code=0`(或无 `code`) |
| 业务失败 | 非上述情况(含业务错误码 1001/1003/1008,以及 HTTP 405 等) |
| HTTP 完成 | uvicorn 记录的 HTTP 200,**不区分**业务码 |
`request_log.jsonl` 已轮转,**9/15–9/18 全日、9/19 白天**只剩 systemd journal,这些天的调用量按 journal 统计;业务成功率仅在仍保留 jsonl 的时段可精确计算(见第 4 节)。
业务接口清单:
| 接口 | 路径 |
|------|------|
| 1 四庭七眼测量 | `/api/v1/face/measure` |
| 2 C 端生发 | `/api/v1/hair/grow` |
| 3 B 端生发 | `/api/v1/hair/grow-b` |
| 4 用户特征分析 | `/api/v1/face/features` |
| 5 发际线 PNG | `/api/v1/hairline/generate` |
| 6 四庭七眼 v2 | `/api/v1/face/measure-v2` |
| 7 C 端生发 v2 | `/api/v1/hair/grow-v2`(已弃用,基本无流量) |
## 2. 总览
| 项 | 数值 |
|----|------|
| 7 日合计调用量 | **20,104** |
| 完整 6 日(9/15–9/20)合计 | **19,824** |
| 完整 6 日日均 | **3,304** |
| 峰值日 | **9/19(周六)8,234** |
| 最低完整日 | **9/15(周二)1,258** |
| 9/21 截至 10:13 | **280** |
主接口构成(7 日合计):
| 接口 | 次数 | 占比 |
|------|------|------|
| 接口2 C 端生发 | 12,470 | 62.0% |
| 接口4 特征分析 | 3,025 | 15.0% |
| 接口1 四庭七眼 | 2,800 | 13.9% |
| 接口5 发际线 | 1,243 | 6.2% |
| 接口6 四庭七眼 v2 | 562 | 2.8% |
| 接口3 / 接口7 等 | 4 | <0.1% |
## 3. 按日调用量
| 日期 | 星期 | 调用量 | 接口2 生发 | 接口4 特征 | 接口1 测量 | 接口5 发际线 | 接口6 测量v2 | 数据来源 |
|------|------|--------|------------|------------|------------|--------------|--------------|----------|
| 9/15 | 周二 | 1,258 | 643 | 171 | 174 | 170 | 100 | journal |
| 9/16 | 周三 | 1,688 | 921 | 236 | 285 | 169 | 75 | journal |
| 9/17 | 周四 | 1,789 | 1,069 | 254 | 232 | 183 | 51 | journal |
| 9/18 | 周五 | 2,429 | 1,350 | 432 | 381 | 189 | 77 | journal |
| 9/19 | 周六 | **8,234** | 4,959 | 1,531 | 1,302 | 287 | 153 | journal |
| 9/20 | 周日 | 4,426 | 3,350 | 347 | 380 | 244 | 105 | jsonl / journal 互核 |
| 9/21 | 周一 | 280 | 178 | 54 | 46 | 0 | 1 | journal(截至 10:13) |
| **合计** | | **20,104** | **12,470** | **3,025** | **2,800** | **1,243** | **562** | |
9/16 另有接口3 共 2 次;9/19 有接口3、接口7 各 1 次(均为 405,见失败说明)。
工作日(9/15–9/18)在 1.3k~2.4k / 天,周六冲到 8.2k,周日回落到 4.4k,仍高于工作日。增量主要来自接口2。
## 4. 成功率
分两层看:HTTP 几乎全部 200;**业务是否成功要以 `code=0` 为准**。
### 4.1 HTTP 完成率(全窗口,journal)
20,104 次中 HTTP 200 为 **20,098**,**99.97%**。非 200 仅 **6 次 HTTP 405**(均为外部对业务路径发 GET,不是客户 POST)。
| 日期 | 调用量 | HTTP 200 | HTTP 成功率 |
|------|--------|----------|-------------|
| 9/15 | 1,258 | 1,258 | 100% |
| 9/16 | 1,688 | 1,688 | 100% |
| 9/17 | 1,789 | 1,789 | 100% |
| 9/18 | 2,429 | 2,429 | 100% |
| 9/19 | 8,234 | 8,228 | 99.93%(6 次 405) |
| 9/20 | 4,426 | 4,426 | 100% |
| 9/21 截至 10:13 | 280 | 280 | 100% |
### 4.2 业务成功率(`code=0`,jsonl 可核验时段)
jsonl 当前只覆盖 **9/19 18:53 之后、9/20 全日、9/21 截至 10:13**,共 **9,720** 次:
| 时段 | 调用量 | 业务成功 | 业务失败 | 业务成功率 |
|------|--------|----------|----------|------------|
| 9/19 18:53–24:00 | 5,011 | 4,991 | 20 | 99.60% |
| 9/20 全日 | 4,432 | 4,379 | 53 | 98.80% |
| 9/21 00:00–10:13 | 277 | 267 | 10 | 96.39% |
| **可核验合计** | **9,720** | **9,637** | **83** | **99.15%** |
按接口(同一 jsonl 窗口):
| 接口 | 调用量 | 业务成功 | 失败 | 成功率 |
|------|--------|----------|------|--------|
| 接口2 C 端生发 | 7,373 | 7,369 | 4 | 99.95% |
| 接口5 发际线 | 354 | 353 | 1 | 99.72% |
| 接口4 特征分析 | 670 | 661 | 9 | 98.66% |
| 接口1 四庭七眼 | 1,157 | 1,120 | 37 | 96.80% |
| 接口6 四庭七眼 v2 | 164 | 134 | 30 | 81.71% |
接口6 成功率偏低,失败几乎全是 `1003 角度问题,请上传正面照`(照片侧脸/角度,不是服务宕机)。接口1 同类原因也较多。
### 4.3 可核验窗口内的失败原因(83 次)
| 次数 | HTTP | 业务码 | 含义 |
|------|------|--------|------|
| 60 | 200 | 1003 | 角度问题,请上传正面照 |
| 15 | 200 | 1001 | 无法识别人像 |
| 6 | 405 | — | 对业务路径发 GET(扫描,非客户) |
| 2 | 200 | 1008 | 图片下载失败或格式不支持 |
没有出现批量 `1007 后端服务暂不可用` / 排队超时。失败以**入图不合规**为主,不是网关或 GPU worker 整段掉线。
## 5. 接口2:业务成功 ≠ 一定出了生发图
接口2 在 ComfyUI / change_hair 失败时仍返回 `code=0`,只是 `grown_image_*` 为 `null`(测试页会显示「ComfyUI 未就绪或生成失败」)。因此第 4 节的成功率**不能**当成「生发图都生成了」。
jsonl 可核验的接口2 出图情况:
| 日期 | 接口2 次数 | 业务成功 | 含生发图 | 生发图为空 |
|------|------------|----------|----------|------------|
| 9/19 18:53 后 | 3,844 | 3,842 | 854 | 2,988 |
| 9/20 | 3,352 | 3,350 | 701 | 2,649 |
| 9/21 截至 10:13 | 178 | 178 | **178** | **0** |
9/19–9/20 大量请求只返回了发际线叠图、没有生发效果图(与当时 GPU 上 change_hair「用户图像加载失败」一致)。**9/21 上午接口2 已全部带生发图**。
## 6. 数据来源与局限
- 调用量:`journalctl -u hair-gateway` 中 uvicorn 访问日志(`POST /api/v1/...`)。
- 业务码 / 失败原因 / 是否含 `grown_image`:`gateway/request_log.jsonl`(及 `.jsonl.1`)。轮转后目前最早一条为 **2026-09-19 18:53**。
- 9/15–9/18 没有业务码明细,不能把 HTTP 100% 等同于业务 100%。
- 接口4 在网关本机执行(豆包),不占 GPU worker;其余表内接口转发 worker。
---
*本文只做观测统计,不包含代码或配置变更。*