IanShaw027
|
6ad29a470c
|
style(ops): 移除未使用的 isAutoRefreshActive 变量
|
2026-01-12 17:28:25 +08:00 |
|
IanShaw027
|
2d45e61a9b
|
style(ops): 修复代码格式问题以通过 golangci-lint
|
2026-01-12 17:18:49 +08:00 |
|
IanShaw027
|
b98fb013ae
|
feat(ops): 添加自动刷新配置功能
功能特性:
- 支持配置启用/禁用自动刷新
- 可配置刷新间隔(15秒/30秒/60秒)
- 实时倒计时显示,用户可见下次刷新时间
- 手动刷新自动重置倒计时
- 页面卸载时自动清理定时器
用户体验:
- 默认禁用,用户可根据需求开启
- 与现有 OpsConcurrencyCard 5秒刷新保持一致
- 倒计时带旋转动画,视觉反馈清晰
- 配置修改后立即生效,无需刷新页面
技术实现:
- ops.ts: 添加 auto_refresh_enabled 和 auto_refresh_interval_seconds 配置
- OpsSettingsDialog.vue: 添加自动刷新配置界面
- OpsDashboard.vue: 实现主刷新逻辑和双定时器设计
- OpsDashboardHeader.vue: 倒计时显示组件
配置说明:
- auto_refresh_enabled: 是否启用(默认 false)
- auto_refresh_interval_seconds: 刷新间隔(默认 30 秒,范围 15-300 秒)
|
2026-01-12 17:07:07 +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 |
|
IanShaw027
|
c02c120579
|
feat(ops): 添加 count_tokens 错误标记数据库迁移
- 新增 is_count_tokens 布尔字段到 ops_error_logs 表
- 默认值为 false
- 支持后续动态过滤统计
|
2026-01-12 17:06:12 +08:00 |
|
shaw
|
4da681f58a
|
Merge branch 'mt21625457/main'
|
2026-01-12 16:20:55 +08:00 |
|
shaw
|
68ba866c38
|
fix(frontend): 修复账号管理页面分组显示和 Cookie 授权问题
- 新增 AccountGroupsCell 组件优化分组列显示(最多4个+折叠)
- 修复 Cookie 自动授权时 group_ids/notes/expires_at 字段丢失
- 修复 SettingsView 流超时配置前后端字段不一致问题
|
2026-01-12 16:08:44 +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 |
|
shaw
|
8363663ea8
|
fix(gateway): 修复 usage_logs 记录 IP 不正确的问题
在 nginx 反向代理场景下,使用 ip.GetClientIP() 替代 c.ClientIP()
以正确获取客户端真实 IP 地址
|
2026-01-12 15:37:45 +08:00 |
|
Wesley Liddick
|
b588ea194c
|
Merge pull request #251 from IanShaw027/fix/ops-bugs
feat(ops): 运维看板功能增强 - 实时流量监控与指标阈值配置
|
2026-01-12 15:26:26 +08:00 |
|
Wesley Liddick
|
465ba76788
|
Merge pull request #250 from IanShaw027/fix/custom-error-codes-disable-scheduling
fix(gateway): 自定义错误码触发停止调度
|
2026-01-12 15:26:14 +08:00 |
|
shaw
|
cf313d5761
|
fix(gateway): 修复 Claude Code 客户端检测和请求信息记录
- 在 Messages 方法中调用 SetClaudeCodeClientContext 启用客户端检测
- 修复 RecordUsageInput 未传递 UserAgent 和 IPAddress 的问题
|
2026-01-12 15:19:40 +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 |
|
IanShaw027
|
e0cccf6ed2
|
fix(ops): 修复Go代码格式问题
|
2026-01-12 14:36:32 +08:00 |
|
IanShaw027
|
89c1a41305
|
fix(ops): 修复错误日志和请求详情模态框的布局问题
- 修复 OpsErrorDetailsModal 的内容溢出问题,使用 flex 布局确保正确显示
- 修复 OpsErrorLogTable 的表格滚动问题,添加 min-h-0 确保正确的滚动行为
- 修复 OpsRequestDetailsModal 的布局问题,添加 pageSize 初始化并优化 flex 布局
- 统一使用 flex 布局模式,确保模态框内容在不同屏幕尺寸下正确显示
|
2026-01-12 14:31:21 +08:00 |
|
yangjianbo
|
202ec21bab
|
fix(config): 提升粘性会话默认等待时长
- 默认值调整为 120s
- 同步示例配置与环境变量
|
2026-01-12 14:26:31 +08:00 |
|
ianshaw
|
6dcb27632e
|
fix(gateway): 自定义错误码触发停止调度
- 修改 HandleUpstreamError 逻辑,启用自定义错误码时所有在列表中的错误码都会停止调度
- 添加 handleCustomErrorCode 函数处理自定义错误码的账号停用
- 前端添加 429/529 错误码的警告提示,因为这些错误码已有内置处理机制
- 更新 EditAccountModal、CreateAccountModal、BulkEditAccountModal 的错误码添加逻辑
|
2026-01-11 22:20:02 -08:00 |
|
yangjianbo
|
3141aa5144
|
feat(scheduler): 引入调度快照缓存与 outbox 回放
- 调度热路径优先读 Redis 快照,保留分组排序语义
- outbox 回放 + 全量重建纠偏,失败重试不推进水位
- 自动 Atlas 基线对齐并同步调度配置示例
|
2026-01-12 14:19:06 +08:00 |
|
IanShaw027
|
5443efd7d7
|
feat(ops): 前端集成实时流量功能
- 添加实时流量API调用方法
- 优化OpsDashboard组件代码
|
2026-01-12 14:18:16 +08:00 |
|
IanShaw027
|
62771583e7
|
feat(ops): 集成实时流量API接口
- 添加实时流量handler处理逻辑
- 注册实时流量路由
- 扩展ops service接口定义
|
2026-01-12 14:17:58 +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 |
|
IanShaw027
|
098bf5a1e8
|
fix(i18n): 补充缺失的英文翻译
- 添加 admin.ops.requestsTitle
- 添加 admin.ops.alertRules.manage 和 saveSuccess/deleteSuccess
- 添加 common.settings
- 添加完整的 admin.ops.settings 部分
- 添加 admin.ops.tooltips.totalRequests 和 upstreamErrors
|
2026-01-12 14:10:44 +08:00 |
|
Wesley Liddick
|
4c37ca71ee
|
Merge pull request #247 from 7836246/fix/negative-zero-balance
fix: 修复扣款时浮点数精度导致的余额不足误判和 -0.00 显示问题
|
2026-01-12 14:10:41 +08:00 |
|
ianshaw
|
0c52809591
|
refactor(settings): 简化流超时配置,移除冗余字段
- 移除 TimeoutSeconds 字段,超时判定由网关配置控制
- 默认禁用流超时处理功能
|
2026-01-11 22:09:35 -08:00 |
|
小海
|
53e730f8d5
|
fix: 修复扣款时浮点数精度导致的余额不足误判和 -0.00 显示问题
|
2026-01-12 14:06:30 +08:00 |
|
IanShaw027
|
8e248e0853
|
fix(ops): 修正卡片标题翻译
- 卡片标题显示"请求"
- 卡片内部标签保持"请求数"
|
2026-01-12 14:05:10 +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 |
|
IanShaw027
|
f55ba3f6c1
|
fix(ops): 优化卡片标题和明细筛选逻辑
- 将"请求数"改为"请求"
- SLA卡片明细只显示错误请求(kind='error')
- TTFT卡片明细按延迟降序排序
|
2026-01-12 13:00:39 +08:00 |
|
IanShaw027
|
db51e65b42
|
chore: 添加ESLint忽略配置
- 添加.eslintignore文件
|
2026-01-12 11:44:34 +08:00 |
|
IanShaw027
|
72a2ed958b
|
feat(ops): 看板上应用指标阈值显示
- 在OpsDashboard中加载阈值配置
- 在OpsDashboardHeader中根据阈值判断指标是否超标
- 超出阈值的指标显示为红色(SLA低于阈值也显示红色)
- 用Icon组件替换emoji表情
|
2026-01-12 11:44:14 +08:00 |
|
IanShaw027
|
d0b91a40d4
|
feat(ops): 添加指标阈值配置UI
- 在OpsSettingsDialog中添加指标阈值配置表单
- 在OpsRuntimeSettingsCard中添加阈值配置区域
- 添加阈值验证逻辑
- 更新国际化文本
|
2026-01-12 11:43:54 +08:00 |
|
IanShaw027
|
bd74bf7994
|
fix(ops): 添加brain图标替换emoji表情
- 在Icon组件中添加brain图标
- 用于替换运维诊断中的emoji表情
|
2026-01-12 11:43:35 +08:00 |
|
IanShaw027
|
f28d4b78e7
|
feat(ops): 前端添加指标阈值类型定义和API
- 添加OpsMetricThresholds类型定义
- 新增getMetricThresholds和updateMetricThresholds API方法
|
2026-01-12 11:43:15 +08:00 |
|
IanShaw027
|
7536dbfee5
|
feat(ops): 后端添加指标阈值管理API
- 新增GetMetricThresholds和UpdateMetricThresholds接口
- 支持配置SLA、延迟P99、TTFT P99、请求错误率、上游错误率阈值
- 添加参数验证逻辑
- 提供默认阈值配置
|
2026-01-12 11:42:56 +08:00 |
|
yangjianbo
|
b76cc583fb
|
去掉失误提交的openspec提案
|
2026-01-12 11:18:14 +08:00 |
|
yangjianbo
|
955af6b3ec
|
fix(仪表盘): 添加聚合和回填操作的执行时间日志
|
2026-01-12 10:59: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 |
|
程序猿MT
|
fd8473f267
|
Merge branch 'Wei-Shaw:main' into main
|
2026-01-12 10:28:22 +08:00 |
|
shaw
|
cc4910dd30
|
fix(test): 修复聚合测试的时区边界条件问题
|
2026-01-12 09:23:46 +08:00 |
|
shaw
|
50de5d05b0
|
fix: 修复PR合并后的功能回退和安全问题
|
2026-01-12 09:14:32 +08:00 |
|
shaw
|
7844dc4f2d
|
Merge PR #238: feat(ops): 实现完整的运维监控系统(vNext)
|
2026-01-12 08:52:17 +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 |
|