Files
BackupX/deploy/grafana/README.md
Wu Qing eff48342c8 功能: v2.2 节点池调度 + Grafana Dashboard + 版本漂移 UI (#49)
节点池动态调度(企业集群核心需求):
- model.Node 新增 Labels CSV;Node.HasLabel / LabelSet 辅助方法
- model.BackupTask 新增 NodePoolTag;与 NodeID 互斥(校验层拒绝同时设置)
- BackupExecutionService.selectPoolNode:匹配标签的在线节点中选"运行中任务最少"
  并列按 ID 升序稳定;空池返回 NODE_POOL_EMPTY 让用户立即感知
- 选中节点仅写 BackupRecord,不回写 task.NodeID —— 每次执行重选实现真轮转均衡

Grafana Dashboard(v2.1 指标的可视化闭环):
- deploy/grafana/backupx-dashboard.json:11 个面板覆盖概览/时序/容量/集群
- deploy/grafana/README.md:Prometheus 抓取配置 + 告警建议
- release workflow 打包 grafana/ + nginx.conf 到 tar.gz

前端:
- 节点列表:Agent 版本 vs Master 不一致时橙红 Tag + Tooltip 提示升级
- 节点列表新增"标签/节点池"列,支持 CSV 编辑 + 并发/带宽一起改
- 任务表单新增 NodePoolTag 输入框,与节点选择器互斥禁用

测试:
- model/node_label_test.go:HasLabel / LabelSet / nil 安全
- service/node_pool_scheduler_test.go:负载最低优先 / 空池错误 / nil repo 降级
- go test ./... + npm run build 全绿
2026-04-21 14:05:48 +08:00

1.1 KiB
Raw Permalink Blame History

BackupX Grafana Dashboard

对接 BackupX v2.1+ 暴露的 Prometheus /metrics 端点。

导入步骤

  1. 在 Grafana 配置 Prometheus 数据源指向你的 Prometheus例如 http://prometheus:9090
  2. 在 Prometheus 配置抓取 BackupX
scrape_configs:
  - job_name: 'backupx'
    scrape_interval: 30s
    static_configs:
      - targets: ['backupx-master:8340']
  1. Grafana → Dashboards → Import → 上传 backupx-dashboard.json → 选 Prometheus 数据源 → Import

面板内容

  • 当前运行任务数 / SLA 违约数 / 在线节点 / 24h 成功率 / 应用版本
  • 任务执行速率(按 success/failed 堆叠)
  • 任务耗时 P50/P95/P99按任务类型
  • 任务产出字节速率
  • 存储目标用量 TopN 柱状图
  • 节点在线状态表(红/绿标色)
  • 验证 / 恢复 / 复制的成功率时间线

自定义建议

  • backupx_sla_breach_tasks > 0 配为 AlertManager 告警
  • sum(backupx_node_online) < N 触发集群容量告警N 为你集群的最少节点数)
  • P99 任务耗时突变可用于发现慢任务和资源压力