Randark
c44711ac98
feat(channel-monitor): quota mode service layer (fetcher + dispatch + repo)
- 常量:MonitorProvider{Antigravity,Kimi,Zhipu,Deepseek}、MonitorCheckMode 三态、
配额缓存/告警阈值参数;新增 check_mode 相关业务错误
- 校验:monitorProviders(8)/probeCapableProviders(7) 集合替代 adapter 表判定,
validateCheckMode 矩阵(antigravity 仅 quota);quota 模式 primary_model
默认占位 "quota",endpoint/api_key 条件必填
- checker:kimi/deepseek 复用 /v1/chat/completions、zhipu 走
/api/paas/v4/chat/completions;merge 黑名单与 replace 校验同步扩容
- ChannelMonitorQuotaFetcher:窄接口聚合账号侧三个用量服务 + 账号加载,
归一为 domain.MonitorQuotaSnapshot;成功快照 5min TTL 缓存防配额端点风暴;
Fetch 永不返回 error(失败降级 Success=false 快照);状态推导
operational/degraded(≥90% 或余额耗尽/账号未关联)/failed(401/403)/error
- RunCheck 按 check_mode 分派:quota 单行结果、quota_probe 探活+配额挂主行、
probe 不变;Update 组合校验 + 关联账号复核(probe 自动解绑失效账号);
Duplicate 拷贝新字段且 quota 模式空明文重加密(防 runner 误停摆)
- repo:Create/Update/entToServiceMonitor 透传 check_mode/account_id;
InsertHistoryBatch 写 quota;ListLatestForMonitorIDs 裸 SQL 加 quota 列 +
scanMonitorQuota JSONB 解包(NULL 安全);ListHistory 透传 quota
2026-08-18 04:03:13 +00:00
..
2026-08-17 19:45:07 +08:00
2026-08-17 20:25:28 +08:00
2026-08-07 17:15:43 +08:00
2026-08-07 16:30:55 +08:00
2026-08-07 14:53:18 +08:00
2026-08-10 14:27:04 +08:00
2026-08-15 10:37:51 +00:00
2026-08-07 14:53:18 +08:00
2026-08-07 14:53:18 +08:00
2026-08-07 14:53:18 +08:00
2026-08-17 20:25:28 +08:00
2026-08-11 09:55:19 +08:00
2026-08-11 09:55:19 +08:00
2026-08-08 09:45:12 +08:00
2026-08-17 20:25:28 +08:00
2026-08-15 16:35:08 +08:00
2026-08-07 14:53:18 +08:00
2026-08-08 10:26:16 +08:00
2026-08-07 13:59:32 +08:00
2026-08-15 10:37:51 +00:00
2026-08-17 20:25:28 +08:00
2026-08-07 13:55:58 +08:00
2026-08-07 15:52:55 +08:00
2026-08-12 03:22:06 +00:00
2026-08-17 19:45:07 +08:00
2026-08-08 21:05:20 +08:00
2026-08-17 19:45:07 +08:00
2026-08-13 09:24:00 +08:00
2026-08-15 10:37:51 +00:00
2026-08-07 09:40:11 -04:00
2026-08-07 09:40:11 -04:00
2026-08-07 09:40:11 -04:00
2026-08-08 22:04:49 -04:00
2026-08-08 22:04:49 -04:00
2026-08-08 22:04:49 -04:00
2026-08-07 09:40:11 -04:00
2026-08-08 14:39:22 +08:00
2026-08-08 14:39:22 +08:00
2026-08-08 10:26:16 +08:00
2026-08-09 22:42:51 +08:00
2026-08-09 22:42:51 +08:00
2026-08-09 15:53:40 +08:00
2026-08-08 21:05:20 +08:00
2026-08-09 15:53:40 +08:00
2026-08-09 15:53:40 +08:00
2026-08-09 20:58:07 +08:00
2026-08-09 20:58:07 +08:00
2026-08-12 21:36:41 +08:00
2026-08-12 21:36:41 +08:00
2026-08-15 10:37:51 +00:00
2026-08-13 07:49:08 +08:00
2026-08-13 09:22:38 +08:00
2026-08-17 19:45:07 +08:00
2026-08-17 19:45:07 +08:00
2026-08-18 04:03:13 +00:00
2026-08-18 04:03:13 +00:00
2026-08-18 04:03:13 +00:00
2026-08-08 13:59:11 +08:00
2026-08-18 04:03:13 +00:00
2026-08-18 04:03:13 +00:00
2026-08-18 04:03:13 +00:00
2026-08-08 13:59:11 +08:00
2026-08-08 14:46:35 +08:00
2026-08-08 01:59:44 +08:00
2026-08-08 14:46:35 +08:00
2026-08-18 04:03:13 +00:00
2026-08-17 19:45:07 +08:00
2026-08-17 19:45:07 +08:00
2026-08-17 19:45:07 +08:00
2026-08-17 19:45:07 +08:00
2026-08-15 10:37:51 +00:00
2026-08-15 10:37:51 +00:00
2026-08-17 04:07:06 +00:00
2026-08-17 04:07:06 +00:00
2026-08-17 04:07:06 +00:00
2026-08-17 04:07:06 +00:00
2026-08-15 10:37:51 +00:00
2026-08-11 13:05:56 +08:00
2026-08-10 09:59:42 +08:00
2026-08-11 13:05:56 +08:00
2026-08-07 17:58:23 +08:00
2026-08-07 17:58:23 +08:00
2026-08-17 19:45:07 +08:00
2026-08-17 19:45:07 +08:00
2026-08-14 23:25:31 +08:00
2026-08-14 22:34:43 +08:00
2026-08-14 22:34:43 +08:00
2026-08-14 22:34:43 +08:00
2026-08-14 22:34:43 +08:00
2026-08-15 10:37:51 +00:00
2026-08-15 10:37:51 +00:00
2026-08-15 10:37:51 +00:00
2026-08-15 10:37:51 +00:00
2026-08-10 18:45:14 +08:00
2026-08-10 18:45:14 +08:00
2026-08-08 10:26:16 +08:00
2026-08-08 10:26:16 +08:00
2026-08-17 19:45:07 +08:00
2026-08-07 18:15:08 +08:00
2026-08-08 11:12:56 +08:00
2026-08-15 10:37:51 +00:00
2026-08-08 09:45:12 +08:00
2026-08-17 19:45:07 +08:00
2026-08-08 16:51:48 +08:00
2026-08-08 16:51:48 +08:00
2026-08-08 21:36:18 +08:00
2026-08-08 21:36:18 +08:00
2026-08-11 16:19:18 +08:00
2026-08-11 12:34:51 +08:00
2026-08-08 10:26:16 +08:00
2026-08-13 08:38:10 +08:00
2026-08-13 08:38:10 +08:00
2026-08-08 01:07:19 +08:00
2026-08-08 08:48:38 +08:00
2026-08-08 08:48:38 +08:00
2026-08-08 23:38:50 +08:00
2026-08-08 23:38:50 +08:00
2026-08-08 08:48:38 +08:00
2026-08-13 07:49:14 +08:00
2026-08-13 07:49:14 +08:00
2026-08-07 16:10:31 +08:00
2026-08-13 01:23:37 +08:00
2026-08-13 01:23:37 +08:00
2026-08-08 12:56:40 +08:00
2026-08-08 12:56:40 +08:00
2026-08-13 07:49:14 +08:00
2026-08-13 07:49:14 +08:00
2026-08-08 01:07:27 +08:00
2026-08-13 07:49:14 +08:00
2026-08-08 01:07:27 +08:00
2026-08-08 11:02:22 +08:00
2026-08-08 12:56:40 +08:00
2026-08-07 13:56:38 +08:00
2026-08-07 13:56:38 +08:00
2026-08-07 14:53:18 +08:00
2026-08-07 14:53:18 +08:00
2026-08-07 13:56:38 +08:00
2026-08-07 13:56:38 +08:00
2026-08-07 13:47:09 +08:00
2026-08-13 07:49:14 +08:00
2026-08-13 07:49:14 +08:00
2026-08-07 14:53:18 +08:00
2026-08-08 12:56:40 +08:00
2026-08-08 01:07:19 +08:00
2026-08-08 08:48:38 +08:00
2026-08-13 07:49:08 +08:00
2026-08-07 15:52:55 +08:00
2026-08-13 08:38:10 +08:00
2026-08-13 08:38:10 +08:00
2026-08-07 20:49:39 +08:00
2026-08-14 18:18:53 +08:00
2026-08-08 10:26:16 +08:00
2026-08-15 10:37:51 +00:00
2026-08-15 16:35:08 +08:00
2026-08-17 19:45:07 +08:00
2026-08-11 10:46:50 +08:00
2026-08-15 10:37:51 +00:00
2026-08-07 22:42:33 +08:00
2026-08-14 16:23:52 +08:00
2026-08-17 20:25:28 +08:00
2026-08-17 20:25:28 +08:00
2026-08-15 16:44:30 +08:00
2026-08-15 16:34:47 +08:00
2026-08-15 16:35:08 +08:00
2026-08-15 16:35:08 +08:00
2026-08-15 16:35:08 +08:00
2026-08-07 21:47:54 +08:00
2026-08-14 18:18:53 +08:00
2026-08-08 10:26:16 +08:00
2026-08-15 10:37:51 +00:00
2026-08-11 16:31:09 +08:00
2026-08-17 04:07:06 +00:00
2026-08-17 04:07:06 +00:00
2026-08-08 14:34:53 +08:00
2026-08-15 10:37:51 +00:00
2026-08-17 04:07:06 +00:00
2026-08-13 07:49:14 +08:00
2026-08-15 10:37:51 +00:00
2026-08-17 22:27:22 +08:00
2026-08-08 11:12:56 +08:00
2026-08-17 17:28:53 +08:00
2026-08-17 20:25:28 +08:00
2026-08-07 20:37:56 +08:00
2026-08-07 17:58:23 +08:00
2026-08-13 01:23:37 +08:00
2026-08-13 01:23:45 +08:00
2026-08-13 07:49:14 +08:00
2026-08-08 23:38:50 +08:00
2026-08-13 01:23:45 +08:00
2026-08-13 08:38:10 +08:00
2026-08-17 17:28:53 +08:00
2026-08-15 10:37:51 +00:00
2026-08-15 10:37:51 +00:00
2026-08-17 20:25:28 +08:00
2026-08-17 19:45:07 +08:00
2026-08-15 10:37:51 +00:00
2026-08-07 22:55:42 +08:00
2026-08-15 16:34:47 +08:00
2026-08-17 17:28:53 +08:00
2026-08-14 16:23:52 +08:00
2026-08-08 14:35:10 +08:00
2026-08-15 10:37:51 +00:00
2026-08-17 19:45:07 +08:00
2026-08-10 11:25:46 +08:00
2026-08-15 16:34:47 +08:00
2026-08-15 10:37:51 +00:00
2026-08-10 11:25:46 +08:00
2026-08-17 22:27:22 +08:00
2026-08-08 01:05:29 +08:00
2026-08-11 14:04:42 +08:00
2026-08-08 15:24:34 +08:00
2026-08-08 15:24:34 +08:00
2026-08-07 13:43:02 +08:00
2026-08-17 17:28:53 +08:00
2026-08-17 20:25:28 +08:00
2026-08-10 09:29:14 +08:00
2026-08-10 09:29:14 +08:00
2026-08-14 16:23:52 +08:00
2026-08-08 14:34:53 +08:00
2026-08-07 20:37:44 +08:00
2026-08-07 20:37:44 +08:00
2026-08-07 21:47:54 +08:00
2026-08-07 21:47:54 +08:00
2026-08-08 14:35:10 +08:00
2026-08-08 01:05:29 +08:00
2026-08-10 09:29:14 +08:00
2026-08-10 11:25:46 +08:00
2026-08-10 11:25:46 +08:00
2026-08-11 16:31:09 +08:00
2026-08-17 19:45:07 +08:00
2026-08-17 20:25:28 +08:00
2026-08-17 20:25:28 +08:00
2026-08-17 20:25:28 +08:00
2026-08-17 19:45:07 +08:00
2026-08-08 11:12:56 +08:00
2026-08-13 07:49:14 +08:00
2026-08-17 19:45:07 +08:00
2026-08-17 20:25:28 +08:00
2026-08-17 20:25:28 +08:00
2026-08-08 10:26:16 +08:00
2026-08-17 19:45:07 +08:00
2026-08-07 18:45:05 +08:00
2026-08-07 18:45:05 +08:00
2026-08-10 18:45:15 +08:00
2026-08-15 10:37:51 +00:00
2026-08-11 10:18:20 +08:00
2026-08-07 20:49:39 +08:00
2026-08-07 14:53:18 +08:00
2026-08-17 17:28:53 +08:00
2026-08-09 15:53:40 +08:00
2026-08-08 21:05:20 +08:00
2026-08-13 09:22:38 +08:00
2026-08-11 04:34:49 +08:00
2026-08-07 14:53:18 +08:00
2026-08-09 15:53:40 +08:00
2026-08-09 15:53:40 +08:00
2026-08-11 04:34:49 +08:00
2026-08-08 08:55:59 +08:00
2026-08-09 12:11:35 +08:00
2026-08-09 15:53:40 +08:00
2026-08-09 15:53:40 +08:00
2026-08-07 17:42:51 +08:00
2026-08-07 17:42:51 +08:00
2026-08-07 17:42:51 +08:00
2026-08-07 17:42:51 +08:00
2026-08-07 17:42:51 +08:00
2026-08-07 17:42:51 +08:00
2026-08-08 01:07:27 +08:00
2026-08-07 16:31:12 +08:00
2026-08-15 10:37:51 +00:00
2026-08-15 10:37:51 +00:00
2026-08-07 16:55:36 +08:00
2026-08-15 10:37:51 +00:00
2026-08-14 18:18:53 +08:00
2026-08-08 22:04:49 -04:00
2026-08-17 21:15:12 +08:00
2026-08-17 21:15:12 +08:00
2026-08-07 09:40:11 -04:00
2026-08-08 21:05:20 +08:00
2026-08-07 17:42:51 +08:00
2026-08-07 17:42:51 +08:00
2026-08-07 17:42:51 +08:00
2026-08-08 11:02:22 +08:00
2026-08-08 11:02:22 +08:00
2026-08-08 11:02:22 +08:00
2026-08-08 01:07:27 +08:00
2026-08-15 10:37:51 +00:00