mirror of
https://github.com/Awuqing/BackupX.git
synced 2026-05-28 07:49:35 +08:00
节点池动态调度(企业集群核心需求): - 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 全绿
35 lines
1.1 KiB
Markdown
35 lines
1.1 KiB
Markdown
# BackupX Grafana Dashboard
|
||
|
||
对接 BackupX v2.1+ 暴露的 Prometheus `/metrics` 端点。
|
||
|
||
## 导入步骤
|
||
|
||
1. 在 Grafana 配置 Prometheus 数据源指向你的 Prometheus(例如 `http://prometheus:9090`)
|
||
2. 在 Prometheus 配置抓取 BackupX:
|
||
|
||
```yaml
|
||
scrape_configs:
|
||
- job_name: 'backupx'
|
||
scrape_interval: 30s
|
||
static_configs:
|
||
- targets: ['backupx-master:8340']
|
||
```
|
||
|
||
3. 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 任务耗时突变可用于发现慢任务和资源压力
|