chore: initial import
This commit is contained in:
286
specs/功能清单.md
Normal file
286
specs/功能清单.md
Normal file
@@ -0,0 +1,286 @@
|
||||
# AI-Ops 功能清单(模块级)
|
||||
|
||||
> 版本:v1.1
|
||||
> 日期:2026-05-11
|
||||
> 说明:模块级功能清单,仅到达"功能级"精度。具体的按钮、动画、色彩、字体等前端实现细节由 Engineer 和前端工程师在开发阶段自行决定,不在 PM 规划范围内。
|
||||
>
|
||||
> **PM 范围:**模块定义、功能边界、数据模型、接口契约、验收标准。
|
||||
> **Engineer 范围:**代码实现、前端组件选型、动画/交互细节、测试用例实现。
|
||||
>
|
||||
> **总工期估算**:34 人天(含 20% 协调缓冲) + 15% 风险缓冲 = **39 人天**。
|
||||
> 估算方法:简单任务 0.5d / 中等任务 1d / 复杂任务 2d,模块级汇总后加缓冲。
|
||||
|
||||
---
|
||||
|
||||
## Phase 1:监控看板 + 日志查询(不触发自动动作)
|
||||
|
||||
> **工期估算**:8 人天(含 20% 协调缓冲)
|
||||
|
||||
### 模块 1.1:监控首页
|
||||
|
||||
#### 1.1.1 首页基础布局
|
||||
- [ ] **任务**:实现首页路由 `/ops/dashboard`,返回监控首页 HTML 模板
|
||||
|
||||
#### 1.1.2 指标数据获取
|
||||
- [ ] **任务**:实现 `GET /api/v1/ai-ops/metrics/realtime` 接口,返回当前 QPS、平均延迟、P99、错误率
|
||||
- [ ] **任务**:实现 `GET /api/v1/ai-ops/metrics/suppliers/count` 接口,返回活跃供应商数量
|
||||
- [ ] **任务**:实现 `GET /api/v1/ai-ops/alerts/open/count` 接口,返回未关闭告警数量
|
||||
|
||||
#### 1.1.3 指标下钻
|
||||
- [ ] **任务**:实现 `GET /api/v1/ai-ops/metrics/query` 接口,支持 service/path/supplier 维度过滤
|
||||
|
||||
### 模块 1.2:日志查询
|
||||
|
||||
#### 1.2.1 日志查询页
|
||||
- [ ] **任务**:实现日志查询页路由 `/ops/dashboard/logs`
|
||||
|
||||
#### 1.2.2 日志结果展示
|
||||
- [ ] **任务**:日志列表以表格展示,每行显示:时间 / 服务名 / 路径 / 状态码 / 延迟 / 用户ID / 供应商ID
|
||||
- [ ] **任务**:日志列表支持分页,每页 100 条,显示总条数
|
||||
- [ ] **任务**:实现日志查询结果"导出 CSV"按钮,导出上限 10000 条
|
||||
|
||||
#### 1.2.3 日志查询性能
|
||||
- [ ] **任务**:日志查询接口添加查询超时逻辑,超时返回部分结果并提示
|
||||
- [ ] **任务**:实现日志查询结果缓存(Redis,5分钟 TTL),同一筛选条件命中缓存时直接返回
|
||||
|
||||
---
|
||||
|
||||
## Phase 2:告警规则引擎 + 通知渠道(告警只通知,不执行自愈)
|
||||
|
||||
> **工期估算**:12 人天(含 20% 协调缓冲)
|
||||
|
||||
### 模块 2.1:告警规则管理
|
||||
|
||||
#### 2.1.1 告警规则列表页
|
||||
- [ ] **任务**:实现告警规则列表页路由 `/ops/dashboard/alerts/rules`
|
||||
- [ ] **任务**:规则列表支持分页,每页 50 条
|
||||
|
||||
#### 2.1.2 创建/编辑告警规则
|
||||
- [ ] **任务**:实现规则创建页路由 `/ops/dashboard/alerts/rules/create`
|
||||
- [ ] **任务**:实现规则创建表单,包含字段:规则名称(必填)、监控指标(下拉:QPS/延迟/错误率/供应商健康度/Token消耗)、阈值类型(下拉:> / < / = / 正则匹配)、阈值数值(必填)、持续时间(分钟,必填)、告警级别(下拉:P0/P1/P2/P3,必填)、通知渠道(多选:Webhook/邮件/飞书/企微)
|
||||
- [ ] **任务**:编辑页路由 `/ops/dashboard/alerts/rules/{rule_id}/edit`,回填已有数据
|
||||
|
||||
#### 2.1.3 告警规则引擎(后端)
|
||||
- [ ] **任务**:实现规则引擎从 PostgreSQL 加载所有启用规则,每 30 秒刷新
|
||||
- [ ] **任务**:实现规则引擎对每个指标数据点执行阈值评估
|
||||
- [ ] **任务**:实现持续时间判定(指标超阈值必须持续 N 分钟才触发)
|
||||
- [ ] **任务**:实现告警事件生成,写入 `ai_ops_alert_events` 表,状态 = triggered
|
||||
- [ ] **任务**:实现同一规则同一目标 5 分钟抑制期逻辑(5 分钟内相同告警不重复生成)
|
||||
- [ ] **任务**:实现告警升级逻辑(P2 持续 2 小时未确认 → 升级 P1)
|
||||
|
||||
### 模块 2.2:告警事件与处置
|
||||
|
||||
#### 2.2.1 告警事件列表
|
||||
- [ ] **任务**:实现告警事件列表页路由 `/ops/dashboard/alerts/events`
|
||||
- [ ] **任务**:事件列表每行显示:事件ID / 规则名称 / 级别 / 触发时间 / 持续时长 / 状态 / 操作
|
||||
|
||||
#### 2.2.2 告警集群聚合
|
||||
- [ ] **任务**:实现告警聚合逻辑:同一服务/资源 1 分钟内触发 >20 条告警时,生成 1 条集群告警
|
||||
- [ ] **任务**:集群告警列表每行显示:集群ID / 涉及规则数 / 累计告警数 / 首条时间 / 最新时间 / 级别
|
||||
|
||||
### 模块 2.3:通知渠道配置
|
||||
|
||||
#### 2.3.1 通知配置页
|
||||
- [ ] **任务**:实现通知配置页路由 `/ops/dashboard/alerts/channels`
|
||||
|
||||
#### 2.3.2 通知发送后端
|
||||
- [ ] **任务**:实现通知发送队列(内存队列 + Redis 持久化)
|
||||
- [ ] **任务**:实现 P0/P1 通知 30 秒内发送,P2 通知 120 秒内发送
|
||||
- [ ] **任务**:实现通知失败时自动切换备用渠道(Webhook 失败 → 邮件 → 飞书 → 企微)
|
||||
- [ ] **任务**:实现通知日志记录,每次发送记录成功/失败原因到 `ai_ops_notification_logs`
|
||||
|
||||
---
|
||||
|
||||
## Phase 3:自愈引擎 + 审计回滚
|
||||
|
||||
> **工期估算**:14 人天(含 20% 协调缓冲)
|
||||
|
||||
### 模块 3.1:自愈规则配置
|
||||
|
||||
#### 3.1.1 自愈规则创建
|
||||
- [ ] **任务**:在告警规则创建/编辑页,添加"自愈动作"可选配置区块
|
||||
- [ ] **任务**:自愈动作类型下拉:无 / 切换备用路由 / 限流 / 重启实例 / 触发脚本
|
||||
- [ ] **任务**:当选择"切换备用路由"时,显示供应商下拉框(选择目标备用供应商)
|
||||
- [ ] **任务**:配置"沙盒模式"开关,默认开启(沙盒模式下自愈动作仅记录,不实际执行)
|
||||
- [ ] **任务**:"保存"按钮同时保存告警规则和自愈动作配置
|
||||
|
||||
#### 3.1.2 自愈执行后端
|
||||
- [ ] **任务**:自愈引擎监听 triggered 状态的告警事件
|
||||
- [ ] **任务**:当告警关联自愈动作且沙盒模式关闭时,执行自愈动作
|
||||
- [ ] **任务**:执行切换备用路由:调用 gateway 管理接口,将流量切换到备用供应商
|
||||
- [ ] **任务**:执行限流:调用 gateway 管理接口,设置速率限制
|
||||
- [ ] **任务**:执行重启实例:通过 K8s API 或主机 agent 调用重启指定服务实例,配置超时 60 秒、最大重试 2 次
|
||||
- [ ] **任务**:执行触发脚本:在隔离环境中执行指定的 shell/Python 脚本,超时 30 秒
|
||||
- [ ] **任务**:自愈动作执行后 60 秒内评估监控指标是否恢复正常
|
||||
- [ ] **任务**:自愈成功:事件状态更新为 resolved,记录动作结果
|
||||
- [ ] **任务**:自愈失败(重试 1 次仍失败):升级为 P0 人工告警(电话/短信),事件状态更新为 escalated
|
||||
|
||||
#### 3.1.3 自愈级联失败处理
|
||||
- [ ] **任务**:切换备用路由后,监控新路由健康状态 2 分钟
|
||||
- [ ] **任务**:若新路由也触发告警,立即回退到原始路由
|
||||
- [ ] **任务**:回退完成后,升级为 P0 人工告警(电话/短信),注明"自愈级联失败"
|
||||
|
||||
### 模块 3.2:配置审计
|
||||
|
||||
#### 3.2.1 审计日志查询页
|
||||
- [ ] **任务**:实现审计日志页路由 `/ops/dashboard/audit`
|
||||
- [ ] **任务**:审计列表每行显示:审计ID / 操作时间 / 操作人 / 操作类型 / 资源类型 / 资源ID / 操作后值摘要
|
||||
- [ ] **任务**:审计列表支持导出(最多 10000 条,按时间范围导出)
|
||||
|
||||
#### 3.2.2 审计后端
|
||||
- [ ] **任务**:拦截所有配置变更操作(CREATE/UPDATE/DELETE),在事务内同步写入审计日志
|
||||
- [ ] **任务**:审计日志写入使用追加模式(不支持 UPDATE/DELETE),数据库层设置禁止删除策略
|
||||
- [ ] **任务**:审计日志保留期 >= 90 天,后台 job 每天清理过期数据
|
||||
|
||||
### 模块 3.3:配置回滚
|
||||
|
||||
#### 3.3.1 回滚操作入口
|
||||
- [ ] **任务**:回滚成功提示:"回滚成功,已恢复到 {时间} 的状态,耗时 X 秒"
|
||||
- [ ] **任务**:回滚失败时显示错误码和原因(如 OPS_AUD_4101)
|
||||
|
||||
#### 3.3.2 回滚后端
|
||||
- [ ] **任务**:实现回滚接口,根据审计记录 ID 查找操作前值
|
||||
- [ ] **任务**:回滚前检查目标资源是否仍存在,不存在时返回错误码 `AUDIT_ROLLBACK_TARGET_LOST`
|
||||
- [ ] **任务**:回滚操作在独立事务中执行,更新目标资源值
|
||||
- [ ] **任务**:回滚成功后生成新审计记录,关联原始审计记录 ID(字段 `rolled_back_from_audit_id`)
|
||||
|
||||
---
|
||||
|
||||
## Phase 4:容量主板与高级分析
|
||||
|
||||
### 模块 4.1:容量视图
|
||||
|
||||
#### 4.1.1 容量主页
|
||||
- [ ] **任务**:实现容量主页路由 `/ops/dashboard/capacity`
|
||||
|
||||
#### 4.1.2 容量数据后端
|
||||
- [ ] **任务**:实现容量数据聚合 job(每小时执行),将原始指标聚合为小时级数据
|
||||
- [ ] **任务**:实现增长率计算算法(基于过去 7 天数据线性回归)
|
||||
- [ ] **任务**:实现负载等级判定(可配置阈值,默认为:正常 < 60% 利用率 < 警告 < 80% < 过载)
|
||||
|
||||
---
|
||||
|
||||
## 全局模块
|
||||
|
||||
### 模块 G1:认证与权限
|
||||
|
||||
- [ ] **任务**:实现登录页路由 `/ops/login`,支持账号密码登录
|
||||
- [ ] **任务**:实现 JWT Token 签发,Token 有效期 8 小时
|
||||
- [ ] **任务**:实现中间件,所有 `/api/v1/ai-ops/*` 接口需携带有效 JWT
|
||||
- [ ] **任务**:实现角色权限中间件:查看者(GET only)、运维人员(可写告警规则)、管理员(可回滚、可管理用户)
|
||||
- [ ] **任务**:实现权限不足时返回 HTTP 403,响应体包含错误码 `OPS_AUTH_1001`
|
||||
|
||||
### 模块 G2:健康检查
|
||||
|
||||
- [ ] **任务**:实现 `GET /actuator/health` 接口,返回整体健康状态
|
||||
- [ ] **任务**:实现 `GET /actuator/health/live` 接口,用于 K8s liveness probe
|
||||
- [ ] **任务**:实现 `GET /actuator/health/ready` 接口,用于 K8s readiness probe(依赖 DB + Redis 连通性)
|
||||
|
||||
### 模块 G3:OpenAPI 文档
|
||||
|
||||
- [ ] **任务**:实现 OpenAPI 3.0 JSON spec 生成,端点 `/openapi.json`
|
||||
- [ ] **任务**:确保所有对外 API(路由/请求/响应/错误码)均在 spec 中体现
|
||||
|
||||
---
|
||||
|
||||
## 技术基础设施(各 Phase 共享)
|
||||
|
||||
### T1:项目骨架
|
||||
- [ ] **任务**:初始化 Go module `github.com/lijiaoliao/ai-ops`
|
||||
- [ ] **任务**:创建 `cmd/ai-ops/main.go` 入口,支持 `api` 和 `worker` 两种运行模式
|
||||
- [ ] **任务**:创建 `internal/` 目录结构(domain/service/handler/infrastructure/repository)
|
||||
- [ ] **任务**:配置 Viper 读取 `config.yaml`,支持环境变量覆盖
|
||||
- [ ] **任务**:配置 `log/slog` 结构化日志,输出 JSON 格式
|
||||
- [ ] **任务**:创建 PostgreSQL schema migration(使用 golang-migrate),表前缀 `ai_ops_`
|
||||
- [ ] **任务**:创建 Redis 连接池配置
|
||||
- [ ] **任务**:配置 Dockerfile 和 docker-compose.yml
|
||||
- [ ] **任务**:编写 `DEPLOYMENT.md` 中的 docker-compose 启动命令
|
||||
|
||||
### T2:单元测试骨架
|
||||
- [ ] **任务**:为每个 domain 层函数编写单元测试,覆盖率 >= 70%
|
||||
- [ ] **任务**:为每个 service 层函数编写单元测试,覆盖率 >= 80%
|
||||
- [ ] **任务**:配置 CI(GitHub Actions),PR 必须通过全部测试和覆盖率检查
|
||||
|
||||
### T3:IntegrationPlugin 接口
|
||||
- [ ] **任务**:实现 `IntegrationPlugin` 接口(`Init() error` / `Serve() error` / `Shutdown() error`)
|
||||
- [ ] **任务**:实现插件模式下各模块的开关配置(`viper` 读取 `ops.enabled_modules`)
|
||||
- [ ] **任务**:编写集成测试:插件模式启动,所有功能正常运作
|
||||
|
||||
---
|
||||
|
||||
## 任务估算汇总
|
||||
|
||||
| Phase | 模块 | 任务数 | 估计工时 |
|
||||
|-------|------|--------|---------|
|
||||
| Phase 1 | 1.1 首页 + 1.2 日志查询 | 28 | 3 人天 |
|
||||
| Phase 2 | 2.1 告警规则 + 2.2 事件处置 + 2.3 通知渠道 | 30 | 4 人天 |
|
||||
| Phase 3 | 3.1 自愈引擎 + 3.2 审计 + 3.3 回滚 + 3.4 供应商切换 | 26+16=42 | 4 人天 + 2 人天 |
|
||||
| Phase 4 | 4.1 容量视图 | 10 | 1.5 人天 |
|
||||
| 全局 | G1 认证 + G2 健康 + G3 文档 | 14 | 1.5 人天 |
|
||||
| 技术基础设施 | T1 骨架 + T2 测试 + T3 插件 | 14 | 2 人天 |
|
||||
| **合计** | | **122+16=138** | **~16+2=18 人天** |
|
||||
|
||||
---
|
||||
|
||||
### 模块 3.4:供应商智能切换(参考 FreeRide 思路)
|
||||
|
||||
> FreeRide 是 OpenClaw 的自动模型切换插件,核心思路:实时排行 → 自动选择 → Fallback 链 → 限速无感知切换。对应到 AI-Ops 的供应商切换场景,可以把这个思路产品化。
|
||||
|
||||
#### 3.4.1 供应商质量监控
|
||||
|
||||
- [ ] **任务**:定时任务(每 5 分钟)调用各中转供应商的 `/models` 接口,记录可用模型列表
|
||||
- [ ] **任务**:对每个供应商执行探测请求(测试请求),记录响应时间和错误率
|
||||
- <a name="343-health-probe"></a>**任务**:探测结果写入 `supplier_health` 表,记录字段:supplier_id、probe_at、latency_ms、error_rate、available_models、elo_score
|
||||
- [ ] **任务**:`GET /api/v1/ai-ops/suppliers/health` 接口返回所有供应商的实时健康状态
|
||||
- [ ] **任务**:`GET /api/v1/ai-ops/suppliers/health/{supplier_id}` 接口返回指定供应商的详细健康状态
|
||||
- [ ] **任务**:在供应商管理页显示健康状态标签(健康 / 延迟高 / 错误率高 / 不可用)
|
||||
- [ ] **任务**:健康状态数据保留 7 天,支持趋势查看
|
||||
|
||||
#### 3.4.2 供应商 Fallback 链管理
|
||||
|
||||
- [ ] **任务**:为每个接入的模型配置主供应商 + 备用供应商列表(至少 1 主 + 1 备)
|
||||
- [ ] **任务**:供应商配置数据结构:
|
||||
```go
|
||||
type SupplierChain struct {
|
||||
Model string // 模型名
|
||||
Primary string // 主供应商ID
|
||||
Fallbacks []string // 备用供应商ID列表(按优先级排序)
|
||||
CooldownSec int // 故障后多少秒内不切换回来(默认300s)
|
||||
}
|
||||
```
|
||||
- [ ] **任务**:配置页支持拖拽排序 Fallback 顺序
|
||||
- [ ] **任务**:切换后的冷却期内,即使主供应商恢复也不同质(避免震荡)
|
||||
- [ ] **任务**:切换记录写入审计日志,包含:切换时间、原供应商、目标供应商、切换原因
|
||||
|
||||
#### 3.4.3 智能切换策略
|
||||
|
||||
- [ ] **任务**:切换策略下拉:成本优先 / 质量优先 / 延迟优先 / 手动
|
||||
- [ ] **任务**:**成本优先**:按 `input_cost_per_token + output_cost_per_token` 排序,选择最低者
|
||||
- [ ] **任务**:**质量优先**:按最近 24h 成功率排序,选择最高者
|
||||
- [ ] **任务**:**延迟优先**:按最近 probe 的 `latency_ms` 排序,选择最低者
|
||||
- [ ] **任务**:**手动**:每次切换需人工确认
|
||||
- [ ] **任务**:当主供应商触发告警(P1/P2),自动检查 Fallback 链是否可用
|
||||
- [ ] **任务**:选择最佳备用供应商后,自动执行切换(若策略不是"手动")
|
||||
- [ ] **任务**:切换完成后发送通知(飞书/企微/钉钉),告知:原供应商、目标供应商、切换原因
|
||||
|
||||
#### 3.4.4 供应商切换执行
|
||||
|
||||
- [ ] **任务**:`POST /api/v1/ai-ops/suppliers/switch` 接口:传入 model + target_supplier,执行切换
|
||||
- [ ] **任务**:调用 gateway 的 `/internal/suppliers/switch` 接口完成实际路由切换
|
||||
- [ ] **任务**:切换后立即执行一次探针验证,确认新供应商可服务工作
|
||||
- [ ] **任务**:验证失败时,回退到上一个供应商,并记录切换失败原因
|
||||
- [ ] **任务**:供应商切换作为自愈动作之一,可关联告警规则(Phase 3.1 已覆盖)
|
||||
|
||||
#### 3.4.5 供应商健康看板
|
||||
|
||||
- [ ] **任务**:路由 `/ops/dashboard/suppliers` 显示供应商健康一览
|
||||
- [ ] **任务**:卡片展示:今日切换次数 / 当前不可用供应商数 / 各供应商平均延迟 / 各供应商错误率
|
||||
- [ ] **任务**:表格展示所有供应商:名称 / 健康状态 / 最后探针时间 / 平均延迟 / 24h 成功率 / 可用模型数
|
||||
- [ ] **任务**:支持按健康状态筛选(全部 / 健康 / 延迟高 / 不可用)
|
||||
|
||||
#### 3.4.6 参考 FreeRide 的非破坏性配置更新
|
||||
|
||||
- [ ] **任务**:供应商配置更新采用原子替换策略:写临时文件 → 验证 → 原子替换
|
||||
- [ ] **任务**:防止配置损坏导致系统不可用
|
||||
- [ ] **任务**:配置更新前先在内存中验证 JSON Schema,不合法则拒绝更新
|
||||
|
||||
132
specs/竞品分析.md
Normal file
132
specs/竞品分析.md
Normal file
@@ -0,0 +1,132 @@
|
||||
# AI-Ops 竞品深度分析
|
||||
|
||||
> 版本:v1.0
|
||||
> 日期:2026-04-27
|
||||
> 内容:14 个竞品全景矩阵、功能逐项对比、技术分析、市场定位
|
||||
|
||||
---
|
||||
|
||||
## 一、市场概览
|
||||
|
||||
- 全球 ITOM 市场:2025 年约 **$420 亿**,AIOps 细分增速 25-30% CAGR
|
||||
- 国内 AIOps 市场:约 **¥80-100 亿**
|
||||
- 43% 的 SRE 团队在采纳监控工具后运营 toil 不降反升(Gartner 2025)
|
||||
- AI 告警噪声降低幅度:60-80%;MTTR 缩短:50-70%
|
||||
|
||||
---
|
||||
|
||||
## 二、竞品全景矩阵(14 个)
|
||||
|
||||
| 竞品 | 类型 | LLM Gateway 特有监控 | 供应商健康检测 | 自愈能力 | 定价 | 核心劣势 |
|
||||
|------|------|---------------------|--------------|---------|------|---------|
|
||||
| **Datadog** | SaaS/企业 | ⚠️ LLM Observability(2024 新增) | ❌ | ❌ | $15+/host/月 | 价格高,对 LLM 特有故障无专项 |
|
||||
| **New Relic** | SaaS/企业 | ⚠️ LLM 监控(新增) | ❌ | ❌ | $0.14-0.25/GiB | 非 LLM 原生,故障定位慢 |
|
||||
| **PagerDuty AIOps** | SaaS | ❌ | ❌ | ⚠️ Runbook 触发 | $15-25/user/月 | 只管 On-call,监控能力弱 |
|
||||
| **incident.io** | SaaS | ❌ | ❌ | ⚠️ AI 根因分析 | $20-35/user/月 | 无监控,只做事件响应 |
|
||||
| **Dynatrace Davis AI** | 企业 | ⚠️ AI 监控 | ❌ | ⚠️ 有限 | 面议 | 重量级,LLM 场景不深 |
|
||||
| **BigPanda** | SaaS | ❌ | ❌ | ⚠️ 自动化工作流 | 面议 | 企业级,配置复杂 |
|
||||
| **Splunk AI** | 企业 | ❌ | ❌ | ❌ | 面议 | 价格极高,非实时 |
|
||||
| **Grafana + Alerting** | 开源 | ❌ | ❌ | ❌ | 免费 | 规则维护成本高,无自愈 |
|
||||
| **阿里云 ARMS** | 云厂商 | ⚠️ 国内模型 | ❌ | ⚠️ 限国内云 | ¥0.5-2/调用量 | 非阿里云环境弱 |
|
||||
| **Opsgenie** | SaaS | ❌ | ❌ | ❌ | $10-20/user/月 | 告警管理,无监控 |
|
||||
| **xMatters** | SaaS | ❌ | ❌ | ✅ 完整 | 面议 | 企业级,K8s 自愈强 |
|
||||
| **Coralogix LLM Observability** | SaaS | ✅ LLM 专项 | ❌ | ❌ | 面议 | 只做可观测性,无自愈 |
|
||||
| **Robusta** | 开源 | ❌ | ❌ | ✅ K8s 自愈 | 免费 | 只管 K8s,不懂 LLM |
|
||||
| **OneAlert** | SaaS | ❌ | ❌ | ⚠️ 告警聚合 | 免费 | 基础告警,无深度 |
|
||||
| **立连桥 ai-ops** | 内部工具 | ✅ 深度集成 | ✅ 分钟级探针 | ✅ 供应商自愈 | 内部成本 | 需从 0 构建 |
|
||||
|
||||
---
|
||||
|
||||
## 三、功能逐项对比(19 项)
|
||||
|
||||
```
|
||||
功能项 Datadog NewRelic PagerDuty incident.io xMatters Grafana ARMS ai-ops
|
||||
LLM Gateway 垂直监控 ⚠️ ⚠️ ❌ ❌ ❌ ❌ ⚠️ ✅
|
||||
供应商密钥失效检测 ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅
|
||||
额度耗尽预警 ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅
|
||||
供应商故障自动切换 ❌ ❌ ⚠️ ❌ ✅ ❌ ⚠️ ✅
|
||||
配置变更审计+回滚 ⚠️ ⚠️ ❌ ❌ ❌ ⚠️ ⚠️ ✅
|
||||
Token 消耗趋势 ⚠️ ⚠️ ❌ ❌ ❌ ⚠️ ⚠️ ✅
|
||||
容量视图(QPS/延迟/利用率) ✅ ✅ ❌ ❌ ❌ ⚠️ ✅ ✅
|
||||
告警聚合+抑制 ✅ ✅ ✅ ✅ ✅ ⚠️ ✅ ✅
|
||||
多渠道告警通知 ✅ ✅ ✅ ✅ ✅ ⚠️ ✅ ✅
|
||||
MTTR 追踪 ✅ ✅ ✅ ✅ ⚠️ ❌ ✅ ✅
|
||||
OpenTelemetry 兼容 ✅ ✅ ⚠️ ✅ ⚠️ ✅ ❌ ✅
|
||||
自愈引擎 ❌ ❌ ⚠️ Runbook ❌ ✅ ❌ ⚠️ ✅
|
||||
独立部署模式 ❌ ❌ ❌ ❌ ❌ ✅ ❌ ✅
|
||||
集成部署模式(Go module) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅
|
||||
Go 标准库实现 ❌ ❌ ❌ ❌ ❌ ⚠️ ❌ ✅
|
||||
Webhook/脚本化自愈 ❌ ❌ ✅ ❌ ✅ ❌ ❌ ✅
|
||||
RBAC 权限控制 ✅ ✅ ✅ ✅ ✅ ⚠️ ✅ ✅
|
||||
Prometheus 格式指标暴露 ✅ ✅ ⚠️ ⚠️ ⚠️ ✅ ⚠️ ✅
|
||||
LLM 特有错误码映射 ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 四、关键技术差异
|
||||
|
||||
### 4.1 告警引擎对比
|
||||
|
||||
| 方案 | 代表竞品 | 自愈能力 | LLM Gateway 适配 |
|
||||
|------|---------|---------|----------------|
|
||||
| 通用 SaaS | Datadog/New Relic | ❌ 无自愈 | ❌ 只做指标监控 |
|
||||
| On-call 平台 | PagerDuty/incident.io | ⚠️ Runbook 触发 | ❌ 无供应商概念 |
|
||||
| 自动化 Remediation | xMatters/Robusta | ✅ 完整 | ⚠️ 基于 K8s/基础设施 |
|
||||
| **ai-ops** | 立连桥 | ✅ 供应商专项自愈 | ✅ 深度集成 |
|
||||
|
||||
### 4.2 数据后端对比
|
||||
|
||||
| 竞品 | 监控后端 | 部署方式 | LLM 场景适配 |
|
||||
|------|---------|---------|------------|
|
||||
| Datadog | 专有 | SaaS | ⚠️ 需额外配置 |
|
||||
| Grafana | Prometheus | 开源 | ⚠️ 需配置 |
|
||||
| 阿里云 ARMS | 专有 | 云 | ⚠️ 只限阿里云 |
|
||||
| **ai-ops** | VictoriaMetrics | 自部署 | ✅ 原生 |
|
||||
|
||||
---
|
||||
|
||||
## 五、市场定位结论
|
||||
|
||||
### 5.1 竞品空白
|
||||
|
||||
**没有任何竞品同时提供:**
|
||||
1. LLM Gateway 特有指标监控(供应商健康/Token 消耗/错误码映射)
|
||||
2. 供应商密钥失效的分钟级自动检测
|
||||
3. 基于供应商状态的自动切换/限流/自愈
|
||||
4. 面向 LLM 运营场景的容量视图
|
||||
|
||||
### 5.2 ai-ops 差异化定位
|
||||
|
||||
```
|
||||
通用监控(Datadog/New Relic)
|
||||
└─ 做不了:LLM 特有故障类型
|
||||
|
||||
On-call 平台(PagerDuty/incident.io)
|
||||
└─ 做不了:供应商状态感知
|
||||
|
||||
K8s 自愈(xMatters/Robusta)
|
||||
└─ 做不了:LLM 供应商层面自愈
|
||||
|
||||
LLM 可观测性(Coralogix)
|
||||
└─ 做不了:自动 Remediation
|
||||
|
||||
───────────────────────────────────
|
||||
立连桥 ai-ops = LLM Gateway 垂直场景
|
||||
✅ 供应商健康探针(分钟级)
|
||||
✅ 密钥失效/额度耗尽自动检测
|
||||
✅ 供应商故障自动切换/限流
|
||||
✅ 配置审计+回滚+容量视图
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 六、技术选型建议
|
||||
|
||||
| 组件 | 推荐方案 | 理由 |
|
||||
|------|---------|------|
|
||||
| 监控后端 | VictoriaMetrics | 单-binary,Prometheus 兼容,压缩率 10x |
|
||||
| 告警引擎 | 自研 | LLM Gateway 特有逻辑,通用方案不支持 |
|
||||
| 自愈执行 | API 调用为主 | 安全可控,可审计 |
|
||||
| 通知渠道 | 飞书+企微双活 | 团队使用习惯,降级链路 |
|
||||
| 配置回滚 | 审计日志+完整值快照 | 状态机简单,回滚可靠性高 |
|
||||
Reference in New Issue
Block a user