From 94dbc89b9b5cfee553cb26c132b495d409590b24 Mon Sep 17 00:00:00 2001 From: attacker Date: Thu, 18 Jun 2026 11:57:59 +0000 Subject: [PATCH] =?UTF-8?q?refactor:=20rename=20EZOps=20=E2=86=92=20AIOps?= =?UTF-8?q?=20globally=20(brand=20unification)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plans/2026-06-18_monitoring_overhaul.md | 238 ++++++++++++++++++ CLAUDE.md | 4 +- README.md | 2 +- backend/README.md | 4 +- backend/config.yaml.example | 4 +- backend/docker-compose.yml | 2 +- backend/internal/api/handlers/llm.go | 2 +- backend/internal/api/handlers/webshell.go | 2 +- backend/scripts/init.sql | 2 +- backend/scripts/mock.go | 4 +- docs/BACKEND_SUMMARY.md | 4 +- docs/PDD_PLAN.md | 6 +- docs/PROJECT_SUMMARY.md | 4 +- docs/README.md | 4 +- docs/ROADMAP.md | 4 +- docs/database-schema.md | 2 +- docs/deployment.md | 2 +- docs/dev-log.md | 4 +- docs/quick-start.md | 2 +- frontend/src/components/auth/Login.tsx | 4 +- .../src/components/monitor/alertShared.tsx | 2 +- 21 files changed, 270 insertions(+), 32 deletions(-) create mode 100644 .hermes/plans/2026-06-18_monitoring_overhaul.md diff --git a/.hermes/plans/2026-06-18_monitoring_overhaul.md b/.hermes/plans/2026-06-18_monitoring_overhaul.md new file mode 100644 index 0000000..c4db25c --- /dev/null +++ b/.hermes/plans/2026-06-18_monitoring_overhaul.md @@ -0,0 +1,238 @@ +# 监控系统全面升级实施方案 + +> **For Hermes:** Execute phase by phase, each phase is independently deployable. + +**Goal:** 构建 4 大监控模块:主机监控、中间件监控、SNMP 设备监控、站点拨测 + +**架构:** Agent 扩展采集器 → Backend 新增路由/处理器 → 前端新建监控面板 + +**Tech Stack:** Go (Agent/Backend), React+TypeScript (Frontend), MySQL+Redis (Storage), gosnmp (SNMP library) + +--- + +## Phase 1: Agent 指标扩展 + 主机监控仪表盘 🖥️ + +### Task 1.1: Agent 新增采集器 - 网络指标 +**Files:** +- Create: `agent/collector/network.go` +- Modify: `agent/model/model.go` +- Modify: `agent/main.go` + +**网络指标采集:** +- 并发连接数 (ESTABLISHED via /proc/net/sockstat) +- TIME_WAIT 连接数 +- 网卡 rx_bytes/s, tx_bytes/s(两次采集差值 / 间隔) +- 网卡名列表和速率 + +### Task 1.2: Agent 新增采集器 - 磁盘 IO +**Files:** +- Create: `agent/collector/diskio.go` +- Modify: `agent/model/model.go` + +**磁盘 IO 指标:** +- 读取 BPS (bytes/s) +- 写入 BPS (bytes/s) +- 读取 IOPS (count/s) +- 写入 IOPS (count/s) + +### Task 1.3: Agent 新增采集器 - 进程监控 +**Files:** +- Create: `agent/collector/process.go` +- Modify: `agent/model/model.go` + +**进程监控:** +- Top N 进程 CPU/内存使用 +- 进程总数 +- 僵尸进程数 + +### Task 1.4: Agent 新增采集器 - 系统信息(启动时一次) +**Files:** +- Create: `agent/collector/system.go` +- Modify: `agent/model/model.go` + +**系统信息:** +- OS 版本 (cat /etc/os-release) +- 内核版本 (uname -r) +- 运行时间 (uptime) +- ulimit -n (nofile 上限) +- ulimit -u (nproc 上限) + +### Task 1.5: Backend - 扩展 AgentReport 模型 +**Files:** +- Modify: `backend/internal/models/agent.go` +- Modify: `backend/internal/api/handlers/agent.go` (ReceiveReport) + +**扩展字段:** +- NetworkInfo JSON (net_connections, net_rx_bps, net_tx_bps, nic_name) +- DiskIOInfo JSON (read_bps, write_bps, read_iops, write_iops) +- ProcessInfo JSON (top_processes, total_proc, zombie_count) +- SystemInfo JSON (os_version, kernel, uptime, ulimit_nofile, ulimit_nproc) + +### Task 1.6: Backend - 主机监控 API +**Files:** +- Create: `backend/internal/api/handlers/host_monitor.go` +- Modify: `backend/internal/api/routes/routes.go` + +**API 端点:** +- `GET /api/v1/monitor/host/:hostname/overview` - 主机概览 +- `GET /api/v1/monitor/host/:hostname/metrics?metric=cpu&from=&to=` - 历史指标 +- `GET /api/v1/monitor/host/:hostname/processes` - 进程列表 +- `GET /api/v1/monitor/host/:hostname/network` - 网络指标 + +### Task 1.7: Frontend - 主机监控面板 +**Files:** +- Create: `frontend/src/pages/HostMonitor.tsx` +- Create: `frontend/src/components/monitor/HostCard.tsx` +- Create: `frontend/src/components/monitor/MetricChart.tsx` +- Modify: `frontend/src/App.tsx` (add route /monitor/host) + +**展示内容:** +- 主机卡片:CPU/内存/磁盘使用率仪表盘 +- 趋势图:CPU/内存/磁盘 5m/1h/6h/24h +- 网络:并发连接数、网卡带宽趋势 +- 进程 TOP 10 表格 + +--- + +## Phase 2: 中间件监控 🔌 + +### Task 2.1: Agent 新增采集器 - Redis +**Files:** +- Create: `agent/collector/redis.go` +- Modify: `agent/model/model.go` + +**Redis 指标(需要配置 host:port:password):** +- 连接数 (connected_clients) +- 内存使用 (used_memory) +- 命中率 (keyspace_hits / (hits + misses)) +- Key 数量 +- 慢查询数 +- QPS (instantaneous_ops_per_sec) + +### Task 2.2: Agent 新增采集器 - MySQL +**Files:** +- Create: `agent/collector/mysql.go` + +**MySQL 指标:** +- 当前连接数 / 最大连接数 +- QPS (Questions 差值) +- 慢查询数 +- Buffer Pool 命中率 +- 复制延迟(如有) + +### Task 2.3: Backend - 中间件监控 API + 配置管理 +**Files:** +- Create: `backend/internal/api/handlers/middleware_monitor.go` +- Create: `backend/internal/models/middleware_config.go` (RedisConfig, MySQLConfig) +- Modify: `backend/internal/api/routes/routes.go` + +**API:** +- `POST /api/v1/monitor/middleware/config` - 配置中间件认证 +- `GET /api/v1/monitor/middleware/redis/:hostname` - Redis 指标 +- `GET /api/v1/monitor/middleware/mysql/:hostname` - MySQL 指标 + +### Task 2.4: Frontend - 中间件监控面板 +**Files:** +- Create: `frontend/src/pages/MiddlewareMonitor.tsx` + +--- + +## Phase 3: SNMP 设备监控 📡 + +### Task 3.1: Backend - SNMP 采集引擎 + OID 模板系统 +**Files:** +- Create: `backend/internal/api/handlers/snmp_monitor.go` +- Create: `backend/internal/models/snmp_template.go` +- Create: `backend/pkg/snmp/collector.go` (uses gosnmp) +- Add dep: `github.com/gosnmp/gosnmp` + +**SNMP 模板系统:** +- 模板包含一组 OID → 指标名映射 +- 预置模板:Cisco 交换机、H3C 交换机、华为交换机、服务器 iLO/iDRAC +- 用户可自定义 OID 模板 + +### Task 3.2: Backend - SNMP 定时采集任务 +**Files:** +- Create: `backend/internal/scheduler/snmp_scheduler.go` + +**定时采集:** +- 每 5 分钟对配置的 SNMP 设备执行采集 +- 存储到 agent_reports 表(type=snmp) + +### Task 3.3: Frontend - SNMP 设备管理 + 监控面板 +**Files:** +- Create: `frontend/src/pages/SNMPMonitor.tsx` +- Create: `frontend/src/components/monitor/SNMPDeviceCard.tsx` + +--- + +## Phase 4: 站点拨测 🌐 + +### Task 4.1: Backend - 拨测引擎 +**Files:** +- Create: `backend/internal/api/handlers/site_monitor.go` +- Create: `backend/internal/models/site_task.go` +- Create: `backend/pkg/probe/` (HTTP, PING, WebSocket, DNS, TCP, UDP, SMTP, POP3, FTP probes) + +**8 种拨测类型实现:** +- HTTP(S): GET/POST,检查状态码 + 响应时间 + 正则匹配 body +- PING: ICMP echo +- WebSocket: 连接 + 心跳 +- DNS: 解析时间 + 结果验证 +- TCP: 端口连通性 +- UDP: 端口连通性 +- SMTP: 连接 + STARTTLS +- POP3: 连接 + 认证 +- FTP: 连接 + 登录 + +### Task 4.2: Backend - 拨测定时任务 +**Files:** +- Modify: `backend/internal/scheduler/` (add probe scheduler) + +### Task 4.3: Frontend - 站点拨测管理面板 +**Files:** +- Create: `frontend/src/pages/SiteMonitor.tsx` +- Create: `frontend/src/components/monitor/ProbeTaskForm.tsx` +- Create: `frontend/src/components/monitor/ProbeResultChart.tsx` + +**展示内容:** +- 拨测任务列表(类型、URL、频率、状态) +- 响应时间趋势图 +- 可用率统计 +- 告警配置 + +--- + +## Phase 5: 导航重构 🧭 + +### Task 5.1: 导航结构重组 +**Files:** +- Modify: `frontend/src/components/layout/MainLayout.tsx` 或 Sidebar + +**新导航结构:** +``` +📊 监控告警 + ├── 🖥️ 主机监控 /monitor/host + ├── 🔌 中间件监控 /monitor/middleware + ├── 📡 SNMP 监控 /monitor/snmp + ├── 🌐 站点拨测 /monitor/site + ├── 📈 Agent 监控 /agent-monitor (已有) + ├── 🚨 告警中心 /alert-center (已有) + └── 📜 告警规则 /agent-alerts (已有) +``` + +--- + +## 执行顺序 + +1. **Phase 1**(最优先,用户当前最需要) + → Agent 扩展网络/磁盘IO/进程/系统信息 + → 前端主机监控面板 + +2. **Phase 2** → 中间件监控 + +3. **Phase 3** → SNMP 设备监控(较复杂,需 gosnmp 依赖) + +4. **Phase 4** → 站点拨测 + +5. **Phase 5** → 导航重构(收尾) diff --git a/CLAUDE.md b/CLAUDE.md index 1a32801..c89199f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,4 +1,4 @@ -# CLAUDE.md — EZOps AIOps +# CLAUDE.md — AIOps 本文档为 Claude Code / Hermes 等 AI 编程助手提供在代码库中工作的指导说明。 @@ -7,7 +7,7 @@ ## 项目概述 -**EZOps AIOps** 是一个企业级智能运维平台,聚焦三大核心能力: +**AIOps** 是一个企业级智能运维平台,聚焦三大核心能力: 1. **资产管理** — 服务器管理、云资源(云账号/域名/账单)、K8s 集群 2. **监控告警** — Agent 采集指标、告警引擎(资源阈值/离线检测)、告警中心、日志能力、链路追踪、监控大屏 diff --git a/README.md b/README.md index def2c4b..e99df62 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# EZOps AIOps 智能运维平台 +# AIOps 智能运维平台 > 企业级云原生智能运维解决方案,集成资产管理、应用发布、监控告警、自动化运维和 AI 智能分析。 diff --git a/backend/README.md b/backend/README.md index 7e4991d..38c57ce 100644 --- a/backend/README.md +++ b/backend/README.md @@ -1,6 +1,6 @@ -# EZOps 后端服务 +# AIOps 后端服务 -EZOps 是一个专业的 AIOps 智能运维平台后端服务,基于 Go + Gin 框架开发。 +AIOps 是一个专业的 AIOps 智能运维平台后端服务,基于 Go + Gin 框架开发。 ## 功能特性 diff --git a/backend/config.yaml.example b/backend/config.yaml.example index 10f4aa0..d159184 100644 --- a/backend/config.yaml.example +++ b/backend/config.yaml.example @@ -1,9 +1,9 @@ -# EZOps 配置文件示例 +# AIOps 配置文件示例 # 复制此文件为 config.yaml 并根据实际情况修改 # 应用配置 app: - name: "EZOps" + name: "AIOps" version: "1.0.0" port: 8080 mode: "debug" # debug, release, test diff --git a/backend/docker-compose.yml b/backend/docker-compose.yml index 0fe46e2..ddee5cd 100644 --- a/backend/docker-compose.yml +++ b/backend/docker-compose.yml @@ -39,7 +39,7 @@ services: timeout: 5s retries: 5 - # EZOps 后端服务 + # AIOps 后端服务 backend: build: context: . diff --git a/backend/internal/api/handlers/llm.go b/backend/internal/api/handlers/llm.go index 9a4a39e..c54a5b8 100644 --- a/backend/internal/api/handlers/llm.go +++ b/backend/internal/api/handlers/llm.go @@ -159,7 +159,7 @@ func resolveEndpoint(provider, endpoint string) string { } // defaultSystemPrompt AIOps 运维助手默认系统提示词 // Logan.Li -const defaultSystemPrompt = `你是 EZOps AIOps 智能运维助手,专注于企业级运维场景。你可以: +const defaultSystemPrompt = `你是 AIOps 智能运维助手,专注于企业级运维场景。你可以: 1. 分析服务器、容器、K8s 集群的性能瓶颈与异常 2. 解读告警事件并给出根因分析与处置建议 3. 生成 Shell / Ansible / Python 运维脚本 diff --git a/backend/internal/api/handlers/webshell.go b/backend/internal/api/handlers/webshell.go index 8295317..d9e577f 100644 --- a/backend/internal/api/handlers/webshell.go +++ b/backend/internal/api/handlers/webshell.go @@ -236,7 +236,7 @@ func (h *WebShellHandler) Terminal(c *gin.Context) { } // 发送欢迎消息 - welcome := "\r\n\x1b[32mEZOps WebShell\x1b[0m — 已连接 " + server.Hostname + " (" + server.IP + ")\r\n\r\n" + welcome := "\r\n\x1b[32mAIOps WebShell\x1b[0m — 已连接 " + server.Hostname + " (" + server.IP + ")\r\n\r\n" conn.WriteJSON(WSMessage{ Status: 0, Data: welcome, diff --git a/backend/scripts/init.sql b/backend/scripts/init.sql index d4a0827..875232b 100644 --- a/backend/scripts/init.sql +++ b/backend/scripts/init.sql @@ -1,4 +1,4 @@ --- EZOps 数据库初始化脚本 +-- AIOps 数据库初始化脚本 -- 创建数据库 CREATE DATABASE IF NOT EXISTS ezops CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; diff --git a/backend/scripts/mock.go b/backend/scripts/mock.go index f527dee..82b5756 100644 --- a/backend/scripts/mock.go +++ b/backend/scripts/mock.go @@ -376,7 +376,7 @@ func generateAlertRules(db *gorm.DB) error { func generateNotifyChannels(db *gorm.DB) error { channels := []models.NotifyChannel{ - {Name: "运维邮件通知", Type: "email", Config: `{"recipients":["ops@ezops.com","admin@ezops.com"],"subject":"[EZOps告警]"}`, Enabled: true, TestStatus: "success"}, + {Name: "运维邮件通知", Type: "email", Config: `{"recipients":["ops@ezops.com","admin@ezops.com"],"subject":"[AIOps告警]"}`, Enabled: true, TestStatus: "success"}, {Name: "短信通知", Type: "sms", Config: `{"phones":["13800138000","13900139000"],"template":"告警:{{alert_name}}"}`, Enabled: true, TestStatus: "success"}, {Name: "钉钉机器人", Type: "dingtalk", Config: `{"webhook":"https://oapi.dingtalk.com/robot/send?access_token=eZOps***","secret":"SEC***","at_all":false}`, Enabled: true, TestStatus: "success"}, {Name: "企业微信机器人", Type: "wechat", Config: `{"webhook":"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=eZOps***"}`, Enabled: true, TestStatus: "success"}, @@ -426,7 +426,7 @@ func generatePipelines(db *gorm.DB) error { } func generateAppReleases(db *gorm.DB) error { - apps := []string{"EZOps 前端", "EZOps 后端", "用户中心", "支付网关", "数据分析平台"} + apps := []string{"AIOps 前端", "AIOps 后端", "用户中心", "支付网关", "数据分析平台"} environments := []string{"dev", "test", "staging", "prod"} statuses := []string{"pending", "building", "deploying", "success", "success", "success", "failed", "rolled_back"} authors := []string{"admin", "ops01", "dev01"} diff --git a/docs/BACKEND_SUMMARY.md b/docs/BACKEND_SUMMARY.md index 65af32a..a1431ed 100644 --- a/docs/BACKEND_SUMMARY.md +++ b/docs/BACKEND_SUMMARY.md @@ -1,8 +1,8 @@ -# EZOps 后端项目总结 +# AIOps 后端项目总结 ## 项目概述 -EZOps 后端是一个基于 Go + Gin 框架开发的专业 AIOps 智能运维平台 API 服务。 +AIOps 后端是一个基于 Go + Gin 框架开发的专业 AIOps 智能运维平台 API 服务。 ## 项目结构 diff --git a/docs/PDD_PLAN.md b/docs/PDD_PLAN.md index deb8fdd..20aa706 100644 --- a/docs/PDD_PLAN.md +++ b/docs/PDD_PLAN.md @@ -1,4 +1,4 @@ -# EZOps AIOps 智能运维平台 - 产品设计文档 +# AIOps 智能运维平台 - 产品设计文档 > 文档版本: v1.0.0 > 编写日期: 2025-04-14 @@ -25,7 +25,7 @@ ### 1.1 产品定位 -EZOps AIOps 智能运维平台是一款面向企业级用户的云原生智能运维解决方案,通过深度集成AI大模型能力,实现运维工作的智能化、自动化,帮助企业降低运维成本、提升系统稳定性。 +AIOps 智能运维平台是一款面向企业级用户的云原生智能运维解决方案,通过深度集成AI大模型能力,实现运维工作的智能化、自动化,帮助企业降低运维成本、提升系统稳定性。 ### 1.2 核心价值 @@ -639,4 +639,4 @@ services: --- -*本文档由EZOps产品团队维护,如有疑问请联系 product@ezops.io* +*本文档由AIOps产品团队维护,如有疑问请联系 product@ezops.io* diff --git a/docs/PROJECT_SUMMARY.md b/docs/PROJECT_SUMMARY.md index 79bed59..3b1be70 100644 --- a/docs/PROJECT_SUMMARY.md +++ b/docs/PROJECT_SUMMARY.md @@ -1,8 +1,8 @@ -# EZOps AIOps 智能运维平台 - 项目总结 +# AIOps 智能运维平台 - 项目总结 ## 项目概述 -EZOps 是一个专业的 AIOps 智能运维平台,包含完整的前后端代码,支持云平台服务器资产管理、Kubernetes 集群管理、应用发布、监控告警、审批流程等核心功能。 +AIOps 是一个专业的 AIOps 智能运维平台,包含完整的前后端代码,支持云平台服务器资产管理、Kubernetes 集群管理、应用发布、监控告警、审批流程等核心功能。 ## 项目结构 diff --git a/docs/README.md b/docs/README.md index 5595073..60d126a 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,6 +1,6 @@ -# EZOps AIOps 开发文档 +# AIOps 开发文档 -本目录包含 EZOps AIOps 智能运维平台的全部开发文档。 +本目录包含 AIOps 智能运维平台的全部开发文档。 ## 文档索引 diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 7410636..4636c12 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -1,4 +1,4 @@ -# EZOps AIOps 智能运维平台 - 产品路线图 +# AIOps 智能运维平台 - 产品路线图 > 版本: v1.0.0 > 更新日期: 2025-04-14 @@ -8,7 +8,7 @@ ## 概述 -EZOps AIOps 智能运维平台是一个面向企业级用户的云原生智能运维解决方案,集成了资产管理、应用发布、监控告警、自动化运维和AI智能分析等核心能力。本路线图规划了产品从MVP到成熟版本的演进路径。 +AIOps 智能运维平台是一个面向企业级用户的云原生智能运维解决方案,集成了资产管理、应用发布、监控告警、自动化运维和AI智能分析等核心能力。本路线图规划了产品从MVP到成熟版本的演进路径。 --- diff --git a/docs/database-schema.md b/docs/database-schema.md index 547992a..1773a0a 100644 --- a/docs/database-schema.md +++ b/docs/database-schema.md @@ -2,7 +2,7 @@ ## 概述 -EZOps AIOps 使用 GORM 作为 ORM 框架,支持 SQLite / MySQL / PostgreSQL。 +AIOps 使用 GORM 作为 ORM 框架,支持 SQLite / MySQL / PostgreSQL。 - **默认**: SQLite(零配置,数据文件 `backend/data/aiops.db`) - **生产**: 推荐使用 MySQL 或 PostgreSQL diff --git a/docs/deployment.md b/docs/deployment.md index 01d2d7b..4c27ba5 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -88,7 +88,7 @@ server { ```ini [Unit] -Description=EZOps AIOps Server +Description=AIOps Server After=network.target [Service] diff --git a/docs/dev-log.md b/docs/dev-log.md index 92bd194..c948d41 100644 --- a/docs/dev-log.md +++ b/docs/dev-log.md @@ -1,4 +1,4 @@ -# EZOps AIOps 开发日志 +# AIOps 开发日志 ## 2026-06-13 项目初始化 @@ -1741,7 +1741,7 @@ cd ~/devops/aiops - ./run.sh restart 后 /health 正常 + 前端 200 - API 验证(curl + 模拟 OpenAI SSE 服务器 python3 /tmp/mock_openai_sse.py 监听 :18899): - 临时启用 config 指向 mock server → POST /aiops/chat/stream 返回 SSE 流:`data: {"content":"你好!"}\n\ndata: {"content":"我是 "}\n\n...` 逐块输出,最终 `event: done\ndata: {"model":"qwen2.5:7b"}` - - sqlite3 验证:成对写入 chat_histories(user:"你是谁" + assistant:"你好!我是 EZOps..."),刷新后历史可见 + - sqlite3 验证:成对写入 chat_histories(user:"你是谁" + assistant:"你好!我是 AIOps..."),刷新后历史可见 - 未配置时 → `event: error\ndata: {"code":400,"message":"LLM 服务未配置..."}` - 原非流式 POST /chat 仍正常工作(向后兼容) - 浏览器验证 /ai-assistant: diff --git a/docs/quick-start.md b/docs/quick-start.md index c2a589a..881f760 100644 --- a/docs/quick-start.md +++ b/docs/quick-start.md @@ -62,7 +62,7 @@ chmod +x run.sh 输出示例: ``` -[INFO] ========== EZOps AIOps 启动脚本 ========== +[INFO] ========== AIOps 启动脚本 ========== [INFO] 正在启动后端服务... [INFO] 编译 Go 程序... [SUCCESS] 后端服务已启动 (PID: 12345, 端口: 8080) diff --git a/frontend/src/components/auth/Login.tsx b/frontend/src/components/auth/Login.tsx index 7b58a3f..9ed7a47 100644 --- a/frontend/src/components/auth/Login.tsx +++ b/frontend/src/components/auth/Login.tsx @@ -235,7 +235,7 @@ export function Login() {

- EZOps AIOps + AIOps

- © EZOps AIOps · 智能运维平台 + © AIOps · 智能运维平台

diff --git a/frontend/src/components/monitor/alertShared.tsx b/frontend/src/components/monitor/alertShared.tsx index 34e0c9c..e9838b6 100644 --- a/frontend/src/components/monitor/alertShared.tsx +++ b/frontend/src/components/monitor/alertShared.tsx @@ -47,7 +47,7 @@ export const CHANNEL_TYPES: { key: string; label: string; placeholder: string }[ { key: 'dingtalk', label: '钉钉', placeholder: '{\n "webhook": "https://oapi.dingtalk.com/robot/send?access_token=***",\n "secret": "SECxxx"\n}' }, { key: 'wechat', label: '企业微信', placeholder: '{\n "webhook": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=***"\n}' }, { key: 'email', label: '邮件', placeholder: '{\n "to": "ops@ezops.io",\n "subject": "告警通知"\n}' }, - { key: 'sms', label: '短信', placeholder: '{\n "phones": "13800138000",\n "sign": "EZOps"\n}' }, + { key: 'sms', label: '短信', placeholder: '{\n "phones": "13800138000",\n "sign": "AIOps"\n}' }, { key: 'webhook', label: 'Webhook', placeholder: '{\n "url": "https://example.com/alert"\n}' }, ];