Eyre921
5aba53d542
fix(ops): 记录固化 200 SSE 流上的就地错误,修复流内限流不进错误看板
流式请求一旦 flush 了 keepalive ping,HTTP 状态码即固化为 200;此后
出现的错误(等待并发槽位超时后回退的限流、Wait 后二次计费校验失败、
流开始后才无可用账号等)只能就地以 SSE error 帧回传。而 ops_error_logger
以 status>=400 为采集触发条件,这类挂在 200 流上的失败此前会在错误看板里
完全隐形——客户端能收到 rate_limit_error,但网关侧没有任何错误记录可供排障。
- service: 新增 OpsStreamError 上下文 + MarkOpsStreamError/GetOpsStreamError,
采用「首个标记生效」保留根因错误,避免被后续通用兜底帧覆盖。
- handler: handleStreamingAwareError 在 streamStarted 分支标记流内错误。
- handler: OpsErrorLoggerMiddleware 在 status<400 且无上游错误上下文时,
据标记补记一条错误日志;分级用 IntendedStatus(如并发限流 429),
StatusCode 仍记 wire 的 200。上游透传错误已由 upstream-context 分支落库,
故此路径不重复记录。
- 补充单测覆盖补记、no-op、skip_monitoring 跳过与首个标记生效。
2026-07-08 02:51:51 +00:00
..
2026-07-02 10:43:08 +08:00
2026-06-26 16:19:41 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-07-06 20:05:50 +08:00
2026-07-06 20:05:50 +08:00
2026-06-30 10:40:05 +08:00
2026-07-06 11:43:16 +08:00
2026-07-06 11:43:16 +08:00
2026-07-01 12:21:45 +08:00
2026-06-29 17:53:19 +08:00
2026-07-01 12:21:45 +08:00
2026-07-07 08:34:18 +08:00
2026-07-04 08:28:30 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-07-04 08:28:30 +08:00
2026-07-03 17:22:49 +00:00
2026-07-06 20:05:50 +08:00
2026-07-03 14:41:18 +08:00
2026-07-06 11:43:16 +08:00
2026-07-07 04:14:09 +08:00
2026-07-06 11:43:16 +08:00
2026-07-01 12:21:45 +08:00
2026-07-07 04:14:09 +08:00
2026-07-02 10:43:08 +08:00
2026-07-04 17:09:16 +08:00
2026-07-05 08:34:34 +08:00
2026-07-06 12:22:04 +08:00
2026-07-06 12:22:04 +08:00
2026-07-02 15:58:29 +08:00
2026-06-28 09:05:28 +08:00
2026-07-02 15:58:29 +08:00
2026-07-02 15:58:29 +08:00
2026-06-30 13:22:27 +08:00
2026-07-01 14:07:08 +08:00
2026-07-06 12:22:04 +08:00
2026-07-06 12:22:04 +08:00
2026-07-06 12:22:04 +08:00
2026-07-04 05:30:50 +08:00
2026-07-06 12:22:04 +08:00
2026-07-04 05:30:50 +08:00
2026-07-07 10:50:36 +08:00
2026-07-06 12:22:04 +08:00
2026-07-06 13:33:53 +08:00
2026-07-07 10:50:36 +08:00
2026-07-07 03:31:39 +08:00
2026-07-07 10:50:36 +08:00
2026-07-07 03:31:39 +08:00
2026-07-07 10:50:36 +08:00
2026-07-07 03:31:39 +08:00
2026-07-07 04:14:09 +08:00
2026-07-07 10:50:36 +08:00
2026-07-04 05:30:50 +08:00
2026-07-06 13:33:53 +08:00
2026-07-06 13:33:53 +08:00
2026-07-04 05:30:50 +08:00
2026-07-04 05:30:50 +08:00
2026-07-04 05:30:50 +08:00
2026-07-06 12:22:04 +08:00
2026-07-04 05:30:50 +08:00
2026-07-06 12:22:04 +08:00
2026-07-07 03:31:39 +08:00
2026-07-01 00:37:51 +08:00
2026-07-01 17:54:39 +08:00
2026-07-01 17:54:39 +08:00
2026-07-06 17:34:22 +08:00
2026-07-01 17:46:12 +08:00
2026-07-03 22:36:39 +08:00
2026-07-06 16:45:15 +08:00
2026-07-07 09:22:44 +08:00
2026-07-03 21:02:31 +08:00
2026-06-26 10:43:05 +08:00
2026-06-26 10:43:05 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-07-05 17:24:38 +08:00
2026-06-29 10:29:23 +08:00
2026-07-02 10:43:08 +08:00
2026-07-01 11:32:22 +08:00
2026-07-01 10:54:18 +08:00
2026-06-26 15:38:06 +08:00
2026-06-26 15:38:06 +08:00
2026-07-06 11:43:16 +08:00
2026-07-03 21:02:32 +08:00
2026-07-07 13:53:39 +08:00
2026-07-07 13:53:39 +08:00
2026-07-01 21:01:11 -05:00
2026-07-07 13:41:40 +08:00
2026-07-07 13:41:40 +08:00
2026-07-07 13:41:40 +08:00
2026-07-06 11:43:16 +08:00
2026-07-06 18:32:29 +08:00
2026-06-26 14:26:43 +08:00
2026-06-26 14:26:43 +08:00
2026-06-26 14:26:43 +08:00
2026-06-26 14:26:43 +08:00
2026-06-26 14:26:43 +08:00
2026-07-02 20:22:17 +00:00
2026-07-02 20:22:17 +00:00
2026-07-01 17:46:12 +08:00
2026-07-06 12:22:04 +08:00
2026-07-04 08:28:30 +08:00
2026-07-04 08:28:30 +08:00
2026-07-01 12:21:45 +08:00
2026-06-26 14:26:43 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-07-05 17:24:38 +08:00
2026-07-01 12:21:45 +08:00
2026-07-06 11:43:16 +08:00
2026-07-06 11:43:16 +08:00
2026-07-06 19:11:08 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-06-26 16:19:41 +08:00
2026-07-06 19:03:36 +08:00
2026-07-06 19:03:36 +08:00
2026-07-07 15:54:55 +08:00
2026-06-29 10:25:43 +08:00
2026-07-01 10:54:51 +08:00
2026-07-07 15:54:55 +08:00
2026-07-01 01:30:42 +08:00
2026-07-06 19:11:08 +08:00
2026-06-26 17:59:26 +08:00
2026-07-07 10:55:07 +08:00
2026-06-29 10:29:23 +08:00
2026-07-01 12:21:45 +08:00
2026-07-02 11:42:10 +08:00
2026-07-06 19:11:08 +08:00
2026-07-07 10:55:07 +08:00
2026-07-07 10:55:07 +08:00
2026-07-01 12:21:45 +08:00
2026-06-26 16:06:01 +08:00
2026-07-06 18:32:29 +08:00
2026-07-06 19:11:08 +08:00
2026-07-06 19:03:36 +08:00
2026-07-04 10:04:42 +08:00
2026-07-01 12:21:45 +08:00
2026-07-07 13:04:28 +08:00
2026-07-07 13:04:28 +08:00
2026-07-03 22:36:39 +08:00
2026-07-06 19:11:08 +08:00
2026-06-29 18:33:37 +08:00
2026-06-29 18:33:37 +08:00
2026-07-06 17:34:22 +08:00
2026-07-01 01:30:42 +08:00
2026-07-02 14:33:55 +08:00
2026-07-02 14:37:30 +08:00
2026-07-02 14:37:30 +08:00
2026-07-02 13:27:58 +08:00
2026-07-02 13:27:58 +08:00
2026-07-01 12:21:45 +08:00
2026-07-02 14:37:30 +08:00
2026-07-06 11:43:16 +08:00
2026-07-06 11:43:16 +08:00
2026-06-30 10:42:32 +08:00
2026-07-03 22:36:39 +08:00
2026-07-06 19:11:08 +08:00
2026-06-29 17:53:19 +08:00
2026-06-29 17:53:19 +08:00
2026-06-30 10:40:05 +08:00
2026-06-30 10:41:41 +08:00
2026-07-01 12:21:45 +08:00
2026-07-02 20:04:47 +00:00
2026-07-02 20:04:47 +00:00
2026-07-03 23:02:27 +08:00
2026-06-27 14:35:19 +08:00
2026-07-03 23:02:27 +08:00
2026-07-03 23:02:27 +08:00
2026-06-27 14:35:19 +08:00
2026-06-27 14:35:19 +08:00
2026-06-27 14:35:19 +08:00
2026-06-27 14:35:19 +08:00
2026-07-08 02:51:51 +00:00
2026-07-03 23:02:27 +08:00
2026-07-03 23:02:27 +08:00
2026-07-06 14:34:17 +08:00
2026-07-06 15:00:29 +08:00
2026-07-06 15:00:29 +08:00
2026-07-02 16:11:07 +08:00
2026-07-06 15:00:29 +08:00
2026-07-06 15:00:29 +08:00
2026-07-06 15:00:29 +08:00
2026-07-06 15:00:29 +08:00
2026-07-06 10:56:43 +08:00
2026-06-30 10:19:50 +08:00
2026-07-06 14:34:17 +08:00
2026-07-06 14:34:17 +08:00
2026-06-30 10:19:50 +08:00
2026-06-30 10:19:50 +08:00
2026-07-06 15:00:29 +08:00
2026-06-30 10:00:48 +08:00
2026-07-06 15:00:29 +08:00
2026-07-06 12:22:04 +08:00
2026-07-07 03:27:11 +08:00
2026-07-05 08:34:34 +08:00
2026-07-04 08:28:30 +08:00
2026-07-04 08:28:30 +08:00
2026-07-01 12:21:45 +08:00
2026-07-06 10:59:23 +08:00
2026-07-06 11:43:16 +08:00
2026-07-02 16:38:42 +00:00
2026-07-02 16:38:42 +00:00
2026-06-26 16:19:41 +08:00
2026-06-26 16:19:41 +08:00
2026-06-30 14:03:33 +08:00
2026-07-05 17:24:38 +08:00
2026-07-06 11:43:16 +08:00
2026-07-05 17:24:38 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 22:19:21 +08:00
2026-07-01 22:19:21 +08:00
2026-07-01 22:19:21 +08:00
2026-07-01 22:19:21 +08:00
2026-07-03 15:21:53 +08:00
2026-07-05 08:34:34 +08:00
2026-07-05 08:34:34 +08:00
2026-07-01 12:21:45 +08:00
2026-07-06 17:46:44 +08:00
2026-07-07 08:28:41 +08:00
2026-07-06 12:22:04 +08:00
2026-07-03 21:02:32 +08:00
2026-06-30 15:31:28 +08:00
2026-07-06 20:27:13 +08:00
2026-07-06 20:27:13 +08:00
2026-06-30 10:19:50 +08:00
2026-07-01 22:19:21 +08:00
2026-07-01 00:37:51 +08:00
2026-07-06 12:22:04 +08:00
2026-07-07 03:27:11 +08:00