Wesley Liddick
|
27214f8657
|
Merge pull request #285 from IanShaw027/fix/ops-bug
feat(ops): 增强错误日志管理、告警静默和前端 UI 优化
|
2026-01-15 11:26:16 +08:00 |
|
Wesley Liddick
|
28de614dfb
|
Merge pull request #282 from LLLLLLiulei/feat/ip-management-enhancements
feat: enhance proxy management
|
2026-01-15 11:23:17 +08:00 |
|
IanShaw027
|
2a6fb1e456
|
feat(ops): 添加用户信息显示和搜索功能
- 在错误日志列表和详情中显示用户邮箱
- 在 GetErrorLogByID 中关联 users 表获取用户邮箱
- 在 OpsErrorLogFilter 中添加 UserQuery 字段
- 在 buildOpsErrorLogsWhere 中添加用户邮箱搜索条件
- 在 GetErrorLogs handler 中支持 user_query 参数
|
2026-01-14 23:56:45 +08:00 |
|
IanShaw027
|
f25f992a30
|
fix(ops): 错误详情中显示账号和分组名称
- 在 GetErrorLogByID 查询中添加 LEFT JOIN 关联查询
- 关联 accounts 和 groups 表获取名称
- 填充 AccountName 和 GroupName 字段
|
2026-01-14 23:52:00 +08:00 |
|
IanShaw027
|
841d7ef2f2
|
fix(lint): 修复 golangci-lint 检查问题
- 格式化代码(gofmt)
- 修复空指针检查(staticcheck)
- 删除未使用的函数(unused)
|
2026-01-14 23:49:27 +08:00 |
|
IanShaw027
|
9584af5cb4
|
fix(ops): 优化错误日志查询和详情展示
- 新增 GetErrorLogByID 接口用于获取单个错误日志详情
- 优化 GetErrorLogs 过滤逻辑,简化参数处理
- 简化前端错误详情模态框代码,提升可维护性
- 更新相关 API 接口和 i18n 翻译
|
2026-01-14 23:16:01 +08:00 |
|
LLLLLLiulei
|
9bdb45be7c
|
feat: enhance proxy management
|
2026-01-14 19:45:29 +08:00 |
|
墨颜
|
ec24a3c361
|
Merge branch 'Wei-Shaw:main' into main
|
2026-01-14 16:42:30 +08:00 |
|
IanShaw027
|
55e469c7fe
|
fix(ops): 优化错误日志过滤和查询逻辑
后端改动:
- 添加 resolved 参数默认值处理(向后兼容,默认显示未解决错误)
- 新增 status_codes_other 查询参数支持
- 移除 service 层的高级设置过滤逻辑,简化错误日志查询流程
前端改动:
- 完善错误日志相关组件的国际化支持
- 优化 Ops 监控面板和设置对话框的用户体验
|
2026-01-14 16:26:33 +08:00 |
|
墨颜
|
fb99ceacc7
|
feat(计费): 支持账号计费倍率快照与统计展示
- 新增 accounts.rate_multiplier(默认 1.0,允许 0)
- 使用 usage_logs.account_rate_multiplier 记录倍率快照,避免历史回算
- 统计/导出/管理端展示账号口径费用(total_cost * account_rate_multiplier)
|
2026-01-14 16:12:08 +08:00 |
|
ianshaw
|
25b00abca1
|
fix(网关): 修复账号选择中的调度器快照延迟问题
## 问题描述
调度器快照更新存在0.5-1秒的延迟(Outbox轮询间隔),导致在账号被限流或过载后的短时间窗口内,
可能仍会被选中,造成请求失败。
## 根本原因
账号选择逻辑依赖调度器快照(listSchedulableAccounts),但快照更新有延迟:
- Outbox轮询: 每1秒检查一次变更事件
- 全量重建: 每300秒重建一次
- 时间窗口: 账号状态变更后0.5-1秒内,快照可能未更新
## 解决方案
在账号选择循环中添加IsSchedulable()实时检查,作为第二道防线:
1. 第一道防线: 调度器快照过滤(可能有延迟)
2. 第二道防线: IsSchedulable()实时检查(本次修复)
IsSchedulable()会检查:
- RateLimitResetAt: 限流重置时间
- OverloadUntil: 过载持续时间
- TempUnschedulableUntil: 临时不可调度时间
- Status: 账号状态
- Schedulable: 可调度标志
## 修改范围
### OpenAI Gateway Service
- SelectAccountForModelWithExclusions: 添加IsSchedulable()检查
- SelectAccountWithLoadAwareness: 添加IsSchedulable()检查
### Gateway Service (Claude/Gemini/Antigravity)
- 负载感知选择候选账号筛选: 添加IsSchedulable()检查
- selectAccountForModelWithPlatform: 添加IsSchedulable()检查
- selectAccountWithMixedScheduling: 添加IsSchedulable()检查
### 测试用例
- OpenAI: 添加2个测试用例验证限流账号过滤
- Gateway: 添加2个测试用例验证限流和过载账号过滤
### 其他修复
- ops_repo_preagg.go: 修复platform为NULL时的聚合问题
## 测试结果
所有单元测试通过 ✅
|
2026-01-13 22:49:26 -08:00 |
|
IanShaw027
|
7158b38897
|
refactor(ops): 优化ops repository数据访问层
|
2026-01-14 14:29:39 +08:00 |
|
IanShaw027
|
2ca6c631ac
|
refactor(ops): 重构ops handler和repository层
|
2026-01-14 12:40:34 +08:00 |
|
IanShaw027
|
33f58d583d
|
fix(ops): 修复告警状态验证和错误处理逻辑
- 增强告警事件状态验证,添加合法状态值检查
- 移除重试逻辑中的遗留字段赋值
- 修正仓库不可用时的错误类型
- 格式化测试文件代码
|
2026-01-14 09:39:18 +08:00 |
|
IanShaw027
|
16ddc6a83b
|
feat(repository): 扩展ops数据访问层功能
- 新增告警静默相关数据库操作
- 增强错误日志查询和统计功能
- 优化重试结果和解决状态的存储
|
2026-01-14 09:03:01 +08:00 |
|
IanShaw027
|
345a965fa3
|
feat(ops): 添加 count_tokens 错误过滤功能
功能特性:
- 自动识别并标记 count_tokens 请求的错误
- 支持配置是否在统计中忽略 count_tokens 错误
- 错误数据完整保留,仅在统计时动态过滤
技术实现:
- ops_error_logger.go: 自动标记 count_tokens 请求
- ops_repo.go: INSERT 语句添加 is_count_tokens 字段
- ops_repo_dashboard.go: buildErrorWhere 核心过滤函数
- ops_repo_preagg.go: 预聚合统计中添加过滤
- ops_repo_trends.go: 趋势统计查询添加过滤(2 处)
- ops_settings_models.go: 添加 ignore_count_tokens_errors 配置
- ops_settings.go: 配置验证和默认值设置
- ops_port.go: 错误日志模型添加 IsCountTokens 字段
业务价值:
- count_tokens 是探测性请求,其错误不影响真实业务 SLA
- 用户可根据需求灵活控制是否计入统计
- 提升错误率、告警等运维指标的准确性
影响范围:
- Dashboard 概览统计
- 错误趋势图表
- 告警规则评估
- 预聚合指标(hourly/daily)
- 健康分数计算
|
2026-01-12 17:06:12 +08:00 |
|
shaw
|
4da681f58a
|
Merge branch 'mt21625457/main'
|
2026-01-12 16:20:55 +08:00 |
|
yangjianbo
|
9622347faa
|
fix(调度): 修复 outbox 空载写入并稳固回放测试
将 outbox payload 为空时写入 NULL
避免事务因 JSON 解析错误中断
调整回放测试为预置缓存后验证 last_used 更新
测试: go test -tags=integration ./internal/repository
|
2026-01-12 15:46:55 +08:00 |
|
Wesley Liddick
|
b588ea194c
|
Merge pull request #251 from IanShaw027/fix/ops-bugs
feat(ops): 运维看板功能增强 - 实时流量监控与指标阈值配置
|
2026-01-12 15:26:26 +08:00 |
|
yangjianbo
|
8c1958c9ad
|
fix(调度): 修复流超时配置并补回放测试
删除前端未支持的 timeout_seconds 字段,避免类型检查失败
新增调度 outbox 回放集成测试
调整调度默认等待超时断言
测试: make test
|
2026-01-12 15:13:39 +08:00 |
|
yangjianbo
|
2db34139f0
|
Merge branch 'main' of https://github.com/mt21625457/aicodex2api
|
2026-01-12 14:50:53 +08:00 |
|
yangjianbo
|
3141aa5144
|
feat(scheduler): 引入调度快照缓存与 outbox 回放
- 调度热路径优先读 Redis 快照,保留分组排序语义
- outbox 回放 + 全量重建纠偏,失败重试不推进水位
- 自动 Atlas 基线对齐并同步调度配置示例
|
2026-01-12 14:19:06 +08:00 |
|
IanShaw027
|
5526f122b7
|
feat(ops): 新增实时流量数据层
- 添加实时流量repository层实现
- 添加实时流量service层逻辑
- 定义实时流量数据模型
|
2026-01-12 14:17:42 +08:00 |
|
Wesley Liddick
|
9c144587fe
|
Merge pull request #249 from IanShaw027/feat/stream-timeout-handling
feat(gateway): 添加流超时处理机制
|
2026-01-12 14:14:21 +08:00 |
|
ianshaw
|
2a0758bdfe
|
feat(gateway): 添加流超时处理机制
- 添加 StreamTimeoutSettings 配置结构体和系统设置
- 实现 TimeoutCounterCache Redis 计数器用于累计超时次数
- 在 RateLimitService 添加 HandleStreamTimeout 方法
- 在 gateway_service、openai_gateway_service、antigravity_gateway_service 中调用超时处理
- 添加后端 API 端点 GET/PUT /admin/settings/stream-timeout
- 添加前端配置界面到系统设置页面
- 支持配置:启用开关、超时阈值、处理方式、暂停时长、触发阈值、阈值窗口
默认配置:
- 启用:true
- 超时阈值:60秒
- 处理方式:临时不可调度
- 暂停时长:5分钟
- 触发阈值:3次
- 阈值窗口:10分钟
|
2026-01-11 21:54:52 -08:00 |
|
yangjianbo
|
1073317a3e
|
fix(仪表盘): 增加对数据库驱动和仓储实例的有效性检查
|
2026-01-12 10:53:41 +08:00 |
|
yangjianbo
|
839ab37d40
|
Merge branch 'main' of https://github.com/mt21625457/aicodex2api
|
2026-01-12 10:38:44 +08:00 |
|
yangjianbo
|
9dd0ef187d
|
fix(仪表盘): 优化CleanupAggregates方法,逐条删除数据以提高错误处理能力
|
2026-01-12 10:38:42 +08:00 |
|
shaw
|
cc4910dd30
|
fix(test): 修复聚合测试的时区边界条件问题
|
2026-01-12 09:23:46 +08:00 |
|
IanShaw027
|
c48795a948
|
fix(ci): 修复最后一批CI错误
- 修复 ops_repo_trends.go 中剩余3处 Rows.Close 未检查错误
- 修复 ops_settings.go, ops_settings_models.go, ops_trends.go 的格式化问题
|
2026-01-12 00:02:19 +08:00 |
|
IanShaw027
|
19b67e89a2
|
fix(ci): 修复剩余的CI错误
- 修复 ops_repo_latency_histogram_buckets.go 中另一个函数的 WriteString 未检查错误
- 修复 ops_repo_request_details.go 和 ops_repo_trends.go 中的 Rows.Close 未检查错误
- 修复 ops_alert_models.go, ops_cleanup_service.go, ops_request_details.go 的格式化问题
- 移除 ops_retry.go 中未使用的 status 字段
- 修复 maxTime 函数重复声明(将测试文件中的函数重命名为 testMaxTime)
|
2026-01-11 23:57:20 +08:00 |
|
IanShaw027
|
f017fd97c1
|
fix(ci): 修复所有CI失败问题
- 修复 ops_ws_handler.go 代码格式问题
- 修复所有未检查的错误返回值(Rows.Close 和 WriteString)
- 更新 .golangci.yml 排除 ops 相关服务文件的 redis 导入检查
|
2026-01-11 23:49:03 +08:00 |
|
IanShaw027
|
ce3336e3f4
|
fix(lint): 修复代码格式和未使用变量问题
- 修复 ops_ws_handler.go 中的代码格式和返回值
- 移除 ops_repo_latency_histogram_buckets.go 中不必要的错误检查
- 修复 api_contract_test.go 缩进并添加运维监控配置项测试
- 移除 ops_cleanup_service.go 中未使用的变量
- 添加 ops_retry.go 中缺失的 status 字段
|
2026-01-11 23:40:09 +08:00 |
|
IanShaw027
|
54c5788b86
|
fix(lint): 修复所有golangci-lint错误
- 修复depguard错误:为ops service文件添加redis导入例外
- 修复errcheck错误:添加错误检查和类型断言检查
- 修复gofmt错误:格式化代码
- 修复ineffassign错误:移除无效的idx++赋值
- 修复staticcheck错误:合并条件赋值
- 修复unused错误:移除未使用的字段和函数
- ops_cleanup_service.go: entryID字段
- ops_retry.go: status字段
- ops_upstream_context.go: getOpsUpstreamErrors函数
|
2026-01-11 23:26:29 +08:00 |
|
IanShaw027
|
3dfb62e996
|
merge: 合并main分支最新改动
解决冲突:
- backend/internal/config/config.go: 合并Ops和Dashboard配置
- backend/internal/server/api_contract_test.go: 合并handler初始化
- backend/internal/service/openai_gateway_service.go: 保留Ops错误追踪逻辑
- backend/internal/service/wire.go: 合并Ops和APIKeyAuth provider
主要合并内容:
- Dashboard缓存和预聚合功能
- API Key认证缓存优化
- Codex转换支持
- 使用日志分区表
|
2026-01-11 23:15:01 +08:00 |
|
IanShaw027
|
73b62bb15c
|
feat(ops): 增强上游错误追踪和新增定时报告服务
- 优化错误日志中间件,即使请求成功也记录上游重试/故障转移事件
- 新增OpsScheduledReportService支持定时报告功能
- 使用Redis分布式锁确保定时任务单实例执行
- 完善依赖注入配置
- 优化前端错误趋势图表展示
|
2026-01-11 23:00:31 +08:00 |
|
IanShaw027
|
f5e45c1a8a
|
refactor(ops): 优化运维监控数据仓库层查询逻辑
|
2026-01-11 20:55:52 +08:00 |
|
yangjianbo
|
48613558d4
|
fix(仪表盘): 修正分区迁移与范围测试
|
2026-01-11 19:01:15 +08:00 |
|
yangjianbo
|
4b66ee2f8f
|
chore(测试): 清理未使用导入
|
2026-01-11 18:49:57 +08:00 |
|
yangjianbo
|
ccb8144557
|
fix(仪表盘): 修复rows.Close错误检查
|
2026-01-11 18:39:29 +08:00 |
|
yangjianbo
|
6271a33d08
|
fix(仪表盘): 兼容禁用聚合与回填限制
|
2026-01-11 18:20:15 +08:00 |
|
yangjianbo
|
5364011a5b
|
fix(仪表盘): 修正聚合时间桶与清理节流
|
2026-01-11 17:21:17 +08:00 |
|
yangjianbo
|
1a869547d7
|
feat(仪表盘): 引入预聚合统计与聚合作业
|
2026-01-11 16:01:35 +08:00 |
|
IanShaw027
|
7ebca553ef
|
feat(ops): 实现上游错误事件记录与查询功能
**新增功能**:
- 新建ops_upstream_error_events表存储上游服务错误详情
- 支持记录上游429/529/5xx错误的详细上下文信息
- 提供按时间范围查询上游错误事件的API
**后端改动**:
1. 模型层(ops_models.go, ops_port.go):
- 新增UpstreamErrorEvent结构体
- 扩展Repository接口支持上游错误事件CRUD
2. 仓储层(ops_repo.go):
- 实现InsertUpstreamErrorEvent写入上游错误
- 实现GetUpstreamErrorEvents按时间范围查询
3. 服务层(ops_service.go, ops_upstream_context.go):
- ops_service: 新增GetUpstreamErrorEvents查询方法
- ops_upstream_context: 封装上游错误上下文构建逻辑
4. Handler层(ops_error_logger.go):
- 新增GetUpstreamErrorsHandler处理上游错误查询请求
5. Gateway层集成:
- antigravity_gateway_service.go: 429/529错误时记录上游事件
- gateway_service.go: OpenAI 429/5xx错误时记录
- gemini_messages_compat_service.go: Gemini 429/5xx错误时记录
- openai_gateway_service.go: OpenAI 429/5xx错误时记录
- ratelimit_service.go: 429限流错误时记录
**数据记录字段**:
- request_id: 关联ops_logs主记录
- platform/model: 上游服务标识
- status_code/error_message: 错误详情
- request_headers/response_body: 调试信息(可选)
- created_at: 错误发生时间
|
2026-01-11 15:30:27 +08:00 |
|
yangjianbo
|
ab5839b461
|
fix(仪表盘): 修复缓存稳定性并补充测试
|
2026-01-11 15:00:16 +08:00 |
|
IanShaw027
|
645609d441
|
merge: 正确合并 main 分支改动
合并 origin/main 最新改动,正确保留所有配置:
- Ops 运维监控配置和功能
- LinuxDo Connect OAuth 配置
- Update 在线更新配置
- 优惠码功能
- 其他 main 分支新功能
修复之前合并时错误删除 LinuxDo 和 Update 配置的问题。
|
2026-01-11 11:41:10 +08:00 |
|
yangjianbo
|
c2c865b0cb
|
perf(仪表盘): 增强统计缓存与隔离配置
新增仪表盘缓存开关与 TTL 配置,支持 Redis key 前缀隔离,并补充单测与校验。
测试: make test-backend
|
2026-01-11 10:07:03 +08:00 |
|
yangjianbo
|
9d0a4f3d68
|
perf(认证): 引入 API Key 认证缓存与轻量删除查询
增加 L1/L2 缓存、负缓存与单飞回源
使用 key+owner 轻量查询替代全量加载并清理旧接口
补充缓存失效与余额更新测试,修复随机抖动 lint
测试: make test
|
2026-01-10 22:23:51 +08:00 |
|
shaw
|
d1a6d6b1cf
|
Merge branch 'mt21625457/main'
|
2026-01-10 14:44:58 +08:00 |
|
IanShaw027
|
3a67002cfe
|
merge: 合并主分支改动并保留 ops 监控实现
合并 main 分支的最新改动到 ops 监控分支。
冲突解决策略:保留当前分支的 ops 相关改动,接受主分支的其他改动。
保留的 ops 改动:
- 运维监控配置和依赖注入
- 运维监控 API 处理器和中间件
- 运维监控服务层和数据访问层
- 运维监控前端界面和状态管理
接受的主分支改动:
- Linux DO OAuth 集成
- 账号过期功能
- IP 地址限制功能
- 用量统计优化
- 其他 bug 修复和功能改进
|
2026-01-10 13:24:40 +08:00 |
|