运维模块 — 功能设计与页面规划
一、运维在平台中的角色
平台用户看到的:
"调个 API,秒回结果"
运维要保证的:
GPU 不宕机、推理不超时、训练不排队太久、数据不丢失
余额扣对了、证书没过期、磁盘没满、模型没漂移
凌晨三点出了问题能在手机上看到告警并处理
运维 ≠ 只看监控。 运维是平台可用性、性能、成本的第一责任人。
二、运维体系全景
┌─────────────────────────────────────────────────────────────┐
│ 告警 & 响应 │
│ 告警规则 → 告警触发 → 通知(钉钉/飞书/Slack/电话) → 处理 │
├─────────────────────────────────────────────────────────────┤
│ 可观测三支柱 │
│ Metrics(Prometheus) Logs(Loki) Traces(Jaeger/Tempo) │
├─────────────────────────────────────────────────────────────┤
│ 监控对象 │
│ 基础设施 │ K8s 集群 │ GPU │ 平台服务 │ 推理服务 │ 业务指标 │
├─────────────────────────────────────────────────────────────┤
│ 运维操作 │
│ 集群管理 │ 节点管理 │ 发布管理 │ 配置管理 │ 备份恢复 │
└─────────────────────────────────────────────────────────────┘
三、监控层级
3.1 基础设施层
| 监控项 |
指标 |
告警阈值 |
工具 |
| CPU |
使用率 |
> 85% 持续 5min |
node-exporter |
| 内存 |
使用率 |
> 90% |
node-exporter |
| 磁盘 |
使用率 |
> 80% 告警, > 90% 严重 |
node-exporter |
| 磁盘 IO |
IOPS / 延迟 |
延迟 > 100ms |
node-exporter |
| 网络 |
带宽 / 丢包率 |
丢包 > 1% |
node-exporter |
| NFS |
读写延迟 |
> 50ms |
自定义 exporter |
| WireGuard |
隧道状态 / 延迟 |
peer 超过 60s 无握手 |
wg show + 自定义 |
3.2 K8s 集群层
| 监控项 |
指标 |
告警阈值 |
工具 |
| 节点状态 |
Ready/NotReady |
任何节点 NotReady |
kube-state-metrics |
| Pod 状态 |
Pending/CrashLoop/OOMKill |
Pending > 5min |
kube-state-metrics |
| Pod 重启 |
重启次数 |
任何 Pod 15min 内重启 > 3 次 |
kube-state-metrics |
| API Server |
请求延迟 / 错误率 |
P99 > 1s 或 5xx > 1% |
apiserver metrics |
| etcd |
磁盘延迟 / leader 切换 |
fsync > 100ms |
etcd metrics |
| CoreDNS |
查询延迟 / 错误率 |
错误率 > 5% |
CoreDNS metrics |
| PVC |
使用率 |
> 80% |
kubelet metrics |
| 证书 |
到期时间 |
< 30 天 |
自定义检查 |
3.3 GPU 层
| 监控项 |
指标 |
告警阈值 |
工具 |
| GPU 利用率 |
SM 利用率 % |
推理 < 20% (浪费) |
DCGM Exporter |
| GPU 显存 |
已用 / 总量 |
> 95% |
DCGM Exporter |
| GPU 温度 |
摄氏度 |
> 85°C |
DCGM Exporter |
| GPU 功耗 |
瓦特 |
> TDP 90% |
DCGM Exporter |
| GPU 错误 |
ECC 错误计数 |
任何 uncorrectable error |
DCGM Exporter |
| GPU 状态 |
健康检查 |
任何卡 not healthy |
DCGM + 自定义 |
| NVLink |
带宽利用率 |
多卡推理时 < 50% (瓶颈) |
DCGM Exporter |
DCGM Exporter (NVIDIA Data Center GPU Manager):
以 DaemonSet 运行在每个 GPU 节点上
暴露 /metrics 端点给 Prometheus 采集
关键指标:
DCGM_FI_DEV_GPU_UTIL GPU 利用率
DCGM_FI_DEV_FB_USED 已用显存
DCGM_FI_DEV_FB_FREE 空闲显存
DCGM_FI_DEV_GPU_TEMP 温度
DCGM_FI_DEV_POWER_USAGE 功耗
DCGM_FI_DEV_XID_ERRORS XID 错误(硬件故障信号)
3.4 平台服务层
| 服务 |
监控项 |
告警阈值 |
| API Gateway |
QPS / 延迟 / 错误率 / 限流触发数 |
5xx > 1%, P95 > 500ms |
| User Service |
登录成功率 / 注册量 |
登录失败率 > 10% |
| Billing Service |
扣费延迟 / 余额同步延迟 |
扣费队列 > 1000 |
| Model Service |
部署成功率 / CRD 处理延迟 |
部署失败率 > 5% |
| Training Service |
任务排队时间 / 成功率 |
排队 > 2h, 失败率 > 20% |
| PostgreSQL |
连接数 / 查询延迟 / 复制延迟 |
连接 > 80%, 复制延迟 > 10s |
| Redis |
内存 / 连接数 / 命中率 |
内存 > 80%, 命中率 < 90% |
3.5 推理服务层
| 监控项 |
指标 |
告警阈值 |
说明 |
| 首 Token 延迟 (TTFT) |
毫秒 |
P95 > 1s |
用户体感最直接的指标 |
| Token 生成速度 (TPS) |
tokens/s |
< 10 t/s (7B模型) |
太慢说明 GPU 过载 |
| 请求排队时间 |
毫秒 |
P95 > 5s |
需要扩容 |
| 请求成功率 |
百分比 |
< 99% |
检查 OOM/超时 |
| 并发请求数 |
数量 |
> max_concurrency 80% |
即将触顶 |
| KV Cache 利用率 |
百分比 |
> 90% |
长上下文消耗 KV Cache |
| Batch 利用率 |
实际batch/最大batch |
< 30% 说明利用率低 |
可缩容 |
推理服务 SLA 定义:
┌──────────────┬──────────┬──────────┬──────────┐
│ 指标 │ 共享池 │ 独享标准 │ 独享高级 │
├──────────────┼──────────┼──────────┼──────────┤
│ 可用性 │ 99% │ 99.9% │ 99.95% │
│ TTFT P95 │ 2s │ 500ms │ 200ms │
│ TPS (7B) │ 20+ │ 30+ │ 40+ │
│ 排队时间 P95 │ 10s │ 1s │ 100ms │
│ 月度赔付 │ 无 │ 10x 故障时│ 100x │
└──────────────┴──────────┴──────────┴──────────┘
3.6 业务指标层
| 指标 |
说明 |
看板位置 |
| 活跃租户数 |
24h 内有 API 调用的组织数 |
运营大盘 |
| API 调用量 |
总 QPS / 按模型分 |
运营大盘 |
| Token 消耗 |
日/周/月 Token 总量和趋势 |
运营大盘 |
| 收入 |
日/周/月 收入金额 |
运营大盘 |
| GPU 利用率 |
整体 GPU 资源利用率 |
成本分析 |
| GPU 成本/Token |
每百万 Token 的 GPU 成本 |
成本分析 |
| 训练队列 |
排队任务数 / 平均等待时间 |
容量规划 |
| 新增注册 |
日新增用户/组织 |
增长分析 |
| 留存率 |
7日/30日 活跃留存 |
增长分析 |
| 充值金额 |
日/周/月 充值总额 |
财务 |
四、告警体系
4.1 告警级别
| 级别 |
含义 |
响应时间 |
通知方式 |
| P0 Critical |
平台不可用/数据丢失风险 |
5 分钟 |
电话 + 短信 + 群消息 |
| P1 High |
核心功能受损/大面积影响 |
15 分钟 |
短信 + 群消息 |
| P2 Medium |
部分功能异常/性能下降 |
1 小时 |
群消息 |
| P3 Low |
预警/趋势异常 |
当天 |
群消息 |
4.2 关键告警规则
- alert: InferenceServiceDown
expr: up{job="inference"} == 0
for: 1m
labels:
severity: critical
annotations:
summary: "推理服务 {{ $labels.instance }} 不可用"
runbook: "检查 Pod 状态 → 检查 GPU → 检查模型加载"
- alert: NodeDown
expr: up{job="node-exporter"} == 0
for: 2m
labels:
severity: critical
- alert: GPUXIDError
expr: DCGM_FI_DEV_XID_ERRORS > 0
for: 0m
labels:
severity: high
annotations:
summary: "GPU {{ $labels.gpu }} 发生 XID 错误,可能硬件故障"
runbook: "1. 检查 dmesg 2. 迁移该卡上的任务 3. 联系硬件供应商"
- alert: InferenceLatencyHigh
expr: histogram_quantile(0.95, rate(inference_request_duration_seconds_bucket[5m])) > 2
for: 5m
labels:
severity: high
annotations:
summary: "推理 P95 延迟超过 2 秒"
runbook: "1. 检查 QPS 是否突增 2. 检查 GPU 利用率 3. 考虑扩容"
- alert: DiskAlmostFull
expr: (node_filesystem_avail_bytes / node_filesystem_size_bytes) < 0.1
for: 5m
labels:
severity: high
- alert: PodCrashLooping
expr: rate(kube_pod_container_status_restarts_total[15m]) > 0.2
for: 5m
labels:
severity: medium
- alert: TrainingQueueTooLong
expr: training_queue_length > 10
for: 30m
labels:
severity: medium
annotations:
summary: "训练队列积压 {{ $value }} 个任务"
runbook: "考虑增加 GPU 节点或调整调度策略"
- alert: CertificateExpiringSoon
expr: (cert_expiry_timestamp - time()) / 86400 < 30
for: 1h
labels:
severity: low
- alert: GPUUnderutilized
expr: avg_over_time(DCGM_FI_DEV_GPU_UTIL[1h]) < 20
for: 6h
labels:
severity: low
annotations:
summary: "GPU {{ $labels.gpu }} 过去 6 小时平均利用率仅 {{ $value }}%"
runbook: "考虑缩容或合并推理实例"
4.3 告警通知渠道
┌────────────┐ ┌──────────────┐ ┌────────────────────┐
│ Prometheus │────→│ Alertmanager │────→│ 通知渠道 │
│ 触发规则 │ │ 分组/抑制/静默│ │ │
└────────────┘ └──────────────┘ │ ├── 飞书/钉钉群机器人│
│ ├── Slack Webhook │
│ ├── 邮件 │
│ ├── 短信 (阿里云SMS) │
│ ├── 电话 (P0级) │
│ └── PagerDuty/Opsgenie│
└────────────────────┘
告警分组:
同一个服务的多条告警合并为一条通知(避免告警风暴)
告警抑制:
节点宕机 → 抑制该节点上所有 Pod 的告警(因为根因是节点)
告警静默:
计划维护时临时静默相关告警
值班表:
周一~周五: 张三 (白班) / 李四 (夜班)
周末: 王五
电话升级: 5分钟无人响应 → 自动电话通知备份值班人
4.4 Runbook (运维手册)
每条告警关联一个 Runbook,包含:
1. 告警含义: 这个告警意味着什么
2. 影响范围: 哪些用户/服务受影响
3. 排查步骤: 第一步看什么、第二步看什么
4. 修复方案: 具体怎么操作
5. 升级流程: 什么时候需要叫更多人
6. 历史案例: 之前出过类似问题的记录
示例 Runbook — InferenceLatencyHigh:
1. 打开 Grafana 推理监控面板
2. 看是全部模型还是单个模型延迟高
3. 检查 QPS → 是否突增(被某个租户刷了?)
4. 检查 GPU 利用率 → 是否已经 100%
5. 如果 QPS 突增 → 检查哪个租户 → 是否触发限流
6. 如果 GPU 满载 → 手动扩容副本数
7. 如果扩容后仍不下降 → 检查模型是否有问题
8. 如果 10分钟内无法解决 → 升级给 @架构师
五、运维操作
5.1 集群管理
| 操作 |
说明 |
风险 |
审批 |
| 添加节点 |
新 GPU 服务器加入集群 |
低 |
无需 |
| 下线节点 |
drain → 迁移 Pod → 移除 |
中 |
需审批 |
| K8s 升级 |
1.30 → 1.31 |
高 |
需审批+维护窗口 |
| etcd 备份/恢复 |
定期备份,灾难恢复 |
高 |
自动备份,恢复需审批 |
| 证书轮换 |
K8s/etcd/Webhook 证书 |
中 |
计划任务 |
5.2 发布管理
平台服务发布流程:
1. 代码合并到 main 分支
2. CI 构建镜像 → 推送到 Harbor
3. 更新 Git 仓库中的 manifests(镜像 tag)
4. ArgoCD 检测到变更
5. 自动同步 staging 环境
6. 在 staging 跑自动化测试
7. 人工审批 → ArgoCD 同步 production
8. 灰度发布(5% → 20% → 50% → 100%)
9. 监控核心指标 15 分钟
10. 确认无异常 → 发布完成
回滚:
ArgoCD 一键回滚到上一个 Git commit
或 Helm rollback
自动化: 发布后如果 5xx 率 > 阈值,自动回滚
5.3 容量规划
GPU 容量规划公式:
需要的 GPU 数 =
(峰值 QPS × 平均生成 Token 数) / 单卡 TPS / 目标利用率
示例:
峰值 QPS: 100
平均生成: 200 tokens
单卡 TPS (A10, 7B): 30 tokens/s
目标利用率: 70%
GPU 数 = (100 × 200) / 30 / 0.7 = 952 → 需要 32 张 A10
加上冗余 (N+1): 33 张
加上训练需求: +8 张
总计: ~41 张 A10 或等价 GPU
5.4 成本优化
| 策略 |
节省幅度 |
实现方式 |
| 量化推理 |
30-50% |
INT8/INT4 减少 GPU 需求 |
| 多 LoRA 共享 |
50-70% |
一张卡同时服务多个微调模型 |
| Serverless 缩容 |
按需 |
空闲时缩到 0,不付 GPU 费用 |
| Spot 实例 |
60-80% |
训练任务用 spot GPU,可被抢占 |
| 请求合并 (Batching) |
20-40% |
vLLM continuous batching |
| KV Cache 复用 |
10-20% |
prefix caching,相同 system prompt 复用 |
| 模型蒸馏 |
因模型而异 |
用大模型的输出训练小模型 |
5.5 灾难恢复
故障级别:
Level 1: 单 Pod 故障
→ K8s 自动重启/重调度
→ 用户无感知
→ 不需要人工介入
Level 2: 单节点故障
→ K8s 5分钟后驱逐 Pod 到其他节点
→ 推理可能短暂排队(HPA 扩容中)
→ 训练从 Checkpoint 恢复
→ 值班人员检查原因
Level 3: 多节点故障 / 网络分区
→ 手动介入,评估影响范围
→ 切换到备用节点/备用集群
→ 通知受影响租户
Level 4: 全集群不可用
→ 从 etcd 备份恢复
→ 或切换到灾备集群
→ 启动应急响应流程
→ CEO 级通知
备份策略:
etcd: 每 6 小时自动备份,保留 7 天
PostgreSQL: 每天全量 + WAL 增量,保留 30 天
模型文件: S3 三副本 + 跨区复制
训练数据: S3 三副本
配置: Git 版本控制 (ArgoCD)
六、页面设计
6.1 页面总览
运维管理后台
│
├── 运维总览 (Dashboard)
├── 集群管理
│ ├── 节点列表
│ ├── 节点详情
│ └── 集群操作(升级/备份)
├── GPU 管理
│ ├── GPU 资源池总览
│ ├── GPU 节点详情
│ └── GPU 分配策略
├── 服务管理
│ ├── 平台服务列表
│ ├── 推理实例管理
│ └── 训练任务管理
├── 监控中心
│ ├── 基础设施监控
│ ├── 推理服务监控
│ ├── 业务指标大盘
│ └── 自定义看板
├── 告警中心
│ ├── 活跃告警
│ ├── 告警历史
│ ├── 告警规则管理
│ ├── 通知渠道配置
│ └── 值班表
├── 日志中心
│ ├── 日志搜索
│ ├── 日志聚合分析
│ └── 日志告警
├── 发布管理
│ ├── 发布记录
│ ├── 灰度发布
│ └── 回滚
├── 配置管理
│ ├── 模型上架配置
│ ├── 计费价格配置
│ └── 限流规则配置
└── 容量与成本
├── 容量规划
├── 成本分析
└── 资源利用率报告
6.2 运维总览 Dashboard
┌──────────────────────────────────────────────────────────────────┐
│ 运维总览 最后更新: 10秒前 [刷新]│
├──────────────────────────────────────────────────────────────────┤
│ │
│ ── 平台状态 ── │
│ │
│ 🟢 API Gateway 🟢 User Service 🟢 Billing Service │
│ 🟢 Model Service 🟢 Training Svc 🟡 Gitea (重启中) │
│ 🟢 PostgreSQL 🟢 Redis 🟢 Harbor │
│ │
│ ── 核心指标 ── │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 总 QPS │ │ 推理延迟 │ │ 成功率 │ │ 活跃租户 │ │
│ │ 452 │ │ P95 320ms│ │ 99.8
│ │ ↑12
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │
│ ── GPU 资源 ── │
│ │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ 总计: 24 GPU │ │
│ │ A10 ████████████████░░░░░░ 12/16 (75
│ │ A100 ████████████░░░░░░░░░░ 4/8 (50
│ │ H100 ████████████████████░░ 2/2 (100
│ └──────────────────────────────────────────────────────────────┘ │
│ │
│ ── 活跃告警 ── │
│ │
│ 🔴 P1 GPU gpu-07 XID 错误 (31分钟前) [处理 →] │
│ 🟡 P2 训练队列积压 8 个任务 (2小时前) [查看 →] │
│ 🟡 P3 GPU gpu-04#3 过去6h利用率仅15
│ │
│ ── QPS 趋势 (24h) ── ── 推理延迟 P95 (24h) ── │
│ │
│ 600│ ╱╲ ╱╲ │ 800│ │
│ 400│ ╱╲╱ ╲╱╱ ╲╱╲ │ 600│ ╱╲ │
│ 200│╱╱ ╲╲ │ 400│ ╱╲──────╱╱ ╲╲ │
│ 0│ ╲ │ 200│╱╲╱╱ │
│ 0:00 6:00 12:00 18:00 │ 0:00 6:00 12:00 18:00 │
│ │
│ ── 今日运维事件 ── │
│ 09:15 张三 扩容推理实例 qwen-7b 3→5 副本 │
│ 08:30 系统 自动 etcd 备份完成 (32MB) │
│ 03:00 系统 告警: gpu-07 XID 错误 │
│ 01:00 系统 训练任务 acme-cs-v4 完成 │
└──────────────────────────────────────────────────────────────────┘
6.3 GPU 管理页
┌──────────────────────────────────────────────────────────────────┐
│ GPU 资源池 [+ 添加节点] │
├──────────────────────────────────────────────────────────────────┤
│ │
│ 总览: 24 GPU │ 已用 18 (75%) │ 空闲 5 │ 异常 1 │
│ 今日 GPU 成本: ¥1,850 │ 本月累计: ¥42,300 │
│ │
│ ┌─ gpu-node-01 ─────────────────────────────────────────────┐ │
│ │ A10 24G × 4 │ LA │ 🟢 正常 │ │
│ │ │ │
│ │ GPU 0: █████████░ 89% 推理 qwen-7b-shared pod-abc │ │
│ │ GPU 1: ██████░░░░ 62% 推理 qwen-7b-shared pod-def │ │
│ │ GPU 2: ████████░░ 78% 训练 acmecorp-cs-v4 │ │
│ │ GPU 3: ░░░░░░░░░░ 0% 空闲 │ │
│ │ │ │
│ │ CPU: 45% │ 内存: 62% │ 磁盘: 35% │ 网络: 2.3Gbps │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─ gpu-node-05 ─────────────────────────────────────────────┐ │
│ │ A100 80G × 4 │ LA │ 🟢 正常 │ │
│ │ │ │
│ │ GPU 0: ████████░░ 82% 推理 qwen-72b-shared pod-ghi │ │
│ │ 显存: 72/80G 温度: 72°C │ │
│ │ GPU 1: ████████░░ 78% 推理 qwen-72b-shared pod-ghi (TP)│ │
│ │ 显存: 70/80G 温度: 70°C │ │
│ │ GPU 2: █████████░ 91% 训练 bigcorp-legal-v1 │ │
│ │ 显存: 75/80G 温度: 75°C │ │
│ │ GPU 3: ██████░░░░ 58% 训练 bigcorp-legal-v1 (DP) │ │
│ │ 显存: 65/80G 温度: 68°C │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─ gpu-node-07 ─────────────────────────────────────────────┐ │
│ │ H100 80G × 2 │ LA │ 🔴 异常 │ │
│ │ │ │
│ │ GPU 0: ████████░░ 85% 训练 deeplearn-llm-pretrain │ │
│ │ GPU 1: 🔴 XID Error 79 需要维护 │ │
│ │ │ │
│ │ 告警: GPU 1 发生 XID 79 错误 (落中内存错误) [查看详情] │ │
│ │ 建议: 迁移该卡上的任务,安排硬件检查 [迁移任务] │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
│ ── GPU 利用率热力图 (最近24h) ── │
│ │
│ 0h 2h 4h 6h 8h 10h 12h 14h 16h 18h 20h 22h │
│ gpu-01#0 ░░ ░░ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ │
│ gpu-01#1 ░░ ░░ ░░ ██ ██ ██ ██ ██ ██ ██ ░░ ░░ │
│ gpu-01#2 ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ │
│ gpu-01#3 ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ │
│ ... ░=空闲 ▓=中等 █=高负载 │
└──────────────────────────────────────────────────────────────────┘
6.4 告警中心
┌──────────────────────────────────────────────────────────────────┐
│ 告警中心 │
├──────────────────────────────────────────────────────────────────┤
│ [活跃告警 (3)] [已处理] [已静默] [告警规则] [通知配置] [值班表] │
├──────────────────────────────────────────────────────────────────┤
│ │
│ 活跃告警: 1 Critical │ 1 High │ 1 Low │
│ │
│ 🔴 Critical GPUXIDError 31分钟前 │
│ gpu-node-07 GPU 1 发生 XID 79 错误(双位 ECC 错误) │
│ 影响: 该卡上的训练任务可能产出错误结果 │
│ Runbook: 1.迁移任务 2.重启 GPU 3.跑 memtest 4.联系供应商 │
│ 处理人: 未认领 [认领] [静默 1h] [查看 Runbook] │
│ │
│ 🟡 High TrainingQueueTooLong 2小时前 │
│ 训练队列积压 8 个任务,预计等待 2.5 小时 │
│ 影响: 新提交的训练任务需要等待较长时间 │
│ 建议: 增加 GPU 节点或提升高优先级任务调度权重 │
│ 处理人: 张三 (已认领) [处理中] [备注] │
│ 备注: 已申请 2 台 A10 临时节点,预计 1 小时内到位 │
│ │
│ 🔵 Low GPUUnderutilized 6小时前 │
│ gpu-node-01 GPU 3 过去 6 小时平均利用率 0
│ 建议: 考虑调度推理负载到该卡,或缩减节点 │
│ [已知忽略] [创建工单] │
│ │
└──────────────────────────────────────────────────────────────────┘
6.5 日志搜索页
┌──────────────────────────────────────────────────────────────────┐
│ 日志中心 │
├──────────────────────────────────────────────────────────────────┤
│ │
│ 查询: {namespace="inference-shared"} |= "error" | json │
│ 时间: [最近 1 小时 ▼] [搜索] │
│ │
│ 快捷过滤: │
│ Namespace: [全部▼] Pod: [全部▼] Level: [error▼] │
│ │
│ ── 结果 (1,234 条) ── │
│ │
│ 15:32:01 inference-shared/qwen-7b-xxx-abc [ERROR] │
│ Request timeout after 120s, model=qwen2.5-7b, │
│ prompt_tokens=4096, org_id=acmecorp │
│ │
│ 15:31:58 inference-shared/qwen-7b-xxx-abc [ERROR] │
│ CUDA out of memory. Tried to allocate 256 MiB. │
│ GPU 0 has 24 GiB total, 23.2 GiB allocated. │
│ │
│ 15:31:45 inference-shared/qwen-7b-xxx-def [ERROR] │
│ Connection refused: billing-service:8080 │
│ │
│ ── 日志趋势 ── │
│ │
│ 50│ ╱╲ │
│ 30│ ╱╲╱ ╲ │
│ 10│╱╱ ╲───────── │
│ └──────────────────── │
│ 14:30 14:45 15:00 15:15 15:30 │
│ │
│ 导出: [下载 CSV] [创建告警规则] [分享链接] │
└──────────────────────────────────────────────────────────────────┘
6.6 成本分析页
┌──────────────────────────────────────────────────────────────────┐
│ 成本分析 [本月 ▼] [导出报告] │
├──────────────────────────────────────────────────────────────────┤
│ │
│ ── 本月成本概览 ── │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ GPU 成本 │ │ 存储成本 │ │ 网络成本 │ │ 总成本 │ │
│ │ ¥42,300 │ │ ¥1,200 │ │ ¥800 │ │ ¥44,300 │ │
│ │ ↑8
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │
│ ── GPU 成本 vs 收入 ── │
│ │
│ ¥60K│ ╱── 收入 │
│ ¥40K│ ╱─── ──── ───╱ │
│ ¥20K│ ╱─────╱ ─ ─ ─── GPU 成本 │
│ └────────────────────────── │
│ Jan Feb Mar Apr │
│ │
│ 毛利率: 62
│ │
│ ── 按模型拆分 ── │
│ │
│ 模型 GPU 成本 收入 毛利 利用率 GPU/百万Token│
│ qwen-7b ¥15,200 ¥38,000 60
│ qwen-14b ¥10,500 ¥25,000 58
│ qwen-72b ¥12,000 ¥42,000 71
│ deepseek-v3 ¥4,600 ¥11,000 58
│ │
│ ── 优化建议 ── │
│ │
│ 💡 qwen-7b 利用率 72
│ 预计节省: ¥3,800/月 │
│ 💡 gpu-node-01 GPU#3 长期空闲,建议调度推理负载 │
│ 预计节省: ¥2,400/月 │
│ 💡 训练任务集中在白天,夜间 GPU 空闲率 60
│ 建议: 训练任务夜间优惠价,引导用户错峰 │
└──────────────────────────────────────────────────────────────────┘
七、页面汇总
| 序号 |
页面 |
路由 |
优先级 |
| 1 |
运维总览 Dashboard |
/admin/overview |
P0 |
| 2 |
节点列表 |
/admin/nodes |
P0 |
| 3 |
节点详情 |
/admin/nodes/:id |
P0 |
| 4 |
GPU 资源池总览 |
/admin/gpu-pool |
P0 |
| 5 |
GPU 节点详情 |
/admin/gpu-pool/:id |
P0 |
| 6 |
GPU 分配策略 |
/admin/gpu-pool/policy |
P1 |
| 7 |
平台服务列表 |
/admin/services |
P0 |
| 8 |
推理实例管理 |
/admin/inference |
P0 |
| 9 |
训练任务管理 |
/admin/training |
P0 |
| 10 |
基础设施监控 |
/admin/monitoring/infra |
P0 |
| 11 |
推理服务监控 |
/admin/monitoring/inference |
P0 |
| 12 |
业务指标大盘 |
/admin/monitoring/business |
P0 |
| 13 |
活跃告警 |
/admin/alerts |
P0 |
| 14 |
告警历史 |
/admin/alerts/history |
P1 |
| 15 |
告警规则管理 |
/admin/alerts/rules |
P0 |
| 16 |
通知渠道配置 |
/admin/alerts/channels |
P0 |
| 17 |
值班表 |
/admin/alerts/oncall |
P1 |
| 18 |
日志搜索 |
/admin/logs |
P0 |
| 19 |
发布记录 |
/admin/releases |
P1 |
| 20 |
模型上架配置 |
/admin/config/models |
P0 |
| 21 |
计费价格配置 |
/admin/config/pricing |
P0 |
| 22 |
限流规则配置 |
/admin/config/ratelimit |
P1 |
| 23 |
容量规划 |
/admin/capacity |
P1 |
| 24 |
成本分析 |
/admin/cost |
P1 |
| 25 |
etcd 备份管理 |
/admin/backup |
P1 |