argus/src/metric/tests/README.md
2025-10-11 15:52:50 +08:00

159 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# E2E Test - Argus Metric 部署测试
## 概述
本项目用于对 Argus Metric 模块进行端到端E2E部署测试。
通过一键脚本可快速搭建 Prometheus、FTP、Grafana 等服务,验证 Metric 模块的完整部署与运行流程。
## 一键构建与部署 Prometheus / FTP / Grafana
### 1. 修改环境变量文件
将示例配置文件复制为 .env 并根据实际情况修改:
``` bash
cp env.example .env
```
### 2. 一键启动服务
执行以下命令完成环境初始化、镜像构建与服务启动:
``` bash
sudo bash start-all.sh
```
该脚本将自动完成:
- 初始化目录结构(如 /private/argus/metric
- 构建各服务 Docker 镜像
- 启动 Prometheus、FTP、Grafana 容器
### 3. 检查容器日志
可手动验证容器运行状态:
``` bash
docker logs argus-metric-ftp
docker logs argus-metric-grafana
docker logs argus-metric-prometheus
```
如日志输出中无 ERROR 或 supervisor 报错信息,则表示服务启动正常。
## 客户端安装包打包与分发
打包后服务端会将安装包发布至 FTP 共享目录,默认路径为:
``` bash
$DATA_ROOT/ftp/share
```
发布后的文件权限与 FTP 目录账户保持一致。
### 1. 递增版本号
``` bash
bash scripts/version-manager.sh bump minor
```
该脚本会自动更新版本号(如 1.101.0 → 1.102.0)。
### 2. 打包安装制品
``` bash
bash scripts/package_artifact.sh
```
执行后会在输出目录中生成压缩包或安装脚本。
### 3. 发布制品至 FTP
``` bash
sudo bash scripts/publish_artifact.sh $VERSION --output-dir $OUTPUT_DIR --owner $UID:$GID
```
参数说明:
参数 说明
$VERSION 发布版本号(如 1.102.0
$OUTPUT_DIR 输出目录(默认 /private/argus/ftp/share
$UID:$GID 文件属主用户ID:组ID
示例:
``` bash
sudo bash scripts/publish_artifact.sh 1.102.0 --output-dir /private/argus/ftp/share --owner 2133:2015
```
更多详情可参考 client-plugins/all-in-one/README.md。
## 客户端安装(通过 FTP
客户端下载与安装步骤如下:
``` bash
curl -u ${USER}:${PASSWD} ftp://${FTP_SERVER}/setup.sh -o setup.sh
chmod +x setup.sh
sudo bash setup.sh --server ${FTP_SERVER} --user ${USER} --password ${PASSWD} --port ${PORT}
```
参数说明:
参数 说明
$FTP_SERVER 服务器 IP 地址
$USER 默认 ftpuser
$PASSWD 默认 ZGClab1234!
$PORT FTP 服务端口(需与 .env 保持一致)
示例:
``` bash
curl -u ftpuser:ZGClab1234! ftp://10.211.55.4/setup.sh -o setup.sh
chmod +x setup.sh
sudo bash setup.sh --server 10.211.55.4 --user ftpuser --password 'ZGClab1234!' --port 2122
```
更多细节可参考 client-plugins/all-in-one/README.md。
## 模拟 Argus-Master 配置下发
可通过手动写入 nodes.json 文件模拟 Argus-Master 对 Argus-Metric 的配置下发:
[
{
"node_id": "A1",
"user_id": "sundapeng",
"ip": "10.211.55.4",
"hostname": "dev-sundapeng-nsche-wohen-pod-0",
"labels": ["label-a", "label-b"]
}
]
路径:
``` bash
${DATA_ROOT}/prometheus/nodes.json
```
Argus-Metric 中的 prometheus 模块会自动解析该文件,并将其拆分生成目标配置:
``` bash
${DATA_ROOT}/prometheus/targets/
```
## Grafana 手动配置(如未自动接入 Prometheus
如 Grafana 未自动导入 Prometheus 数据源,可手动执行以下操作:
1. 添加数据源
- 进入 Grafana → Data sources
- 选择 Add data source → Prometheus
- URL 填写http://prometheus:9090(Docker 内部 DNS 地址)
2. 导入测试 Dashboard
- 打开 Grafana → Dashboards → Import
- 上传或粘贴 test_grafana_dashboard.json
## 查看监控数据
Prometheus 访问以下地址查看节点活性:
``` bash
http://127.0.0.1:9091/targets
```
Grafana 访问以下地址查看监控大屏:
``` bash
http://127.0.0.1:3000/d/node_gpu_metrics/node-and-gpu-metrics
```