# E2E Test - Argus Metric 部署测试
## 1. 概述

本项目用于对 Argus Metric 模块进行端到端（E2E）部署测试。
通过一键脚本可快速搭建 Prometheus、FTP、Grafana 等服务，验证 Metric 模块的完整部署与运行流程。

功能包括：

- 自动启动所需服务和测试节点
- 发布安装包到 FTP
- CPU/GPU 节点客户端安装测试
- 验证安装结果与服务可用性
- 支持环境清理和分步调试

## 2. 前置条件

在开始部署和测试之前，请确保完成以下准备工作：

### 2.1 检查 all-in-one-full 客户端安装包
确认客户端安装包目录是否存在：
```bash
{$PROJECT_ROOT}/argus/src/metric/client-plugins/all-in-one-full
```
本项目依赖完整的 all-in-one-full 安装包，其中包含大量二进制文件、依赖包和测试制品，由于体积较大，无法直接上传到 Git 仓库。**请联系项目管理员获取最新版本的完整框架。**

### 2.2 配置环境变量
查看配置文件是否存在，如不存在，则复制示例配置文件并根据实际环境修改：
```bash
cd {$PROJECT_ROOT}/argus/src/metric/tests
cp env.example .env
```
.env 文件用于指定构建UID:GID、FTP 配置、版本号等信息，确保各脚本运行时可以正确访问资源。

### 2.3 离线镜像准备
  - 步骤1：在**在线服务器**执行以下脚本，会拉取和构建所需的 Docker 镜像：
      ``` bash 
      cd {$PROJECT_ROOT}/argus/src/metric/tests
      bash scripts/01_start_services.sh
      bash scripts/save-images.sh
      ```
  - 步骤2：镜像将被保存到 metric.tests.images-cache 目录中，用于离线迁移和后续导入。
  - 步骤3：若目标服务器无法联网，可将该目录拷贝到离线服务器，并执行：
      ``` bash 
      cd {$PROJECT_ROOT}/argus/src/metric/tests
      bash scripts/load-images.sh
      ```
  - 即可导入镜像并执行下面的QuickStart或分步操作。

## 3. QuickStart

执行完整的端到端测试流程：

```bash
bash scripts/00_e2e_test.sh
```

该脚本将自动执行以下步骤：
1. 启动所有服务（Prometheus、FTP、Grafana、测试节点）
2. 发布安装包到 FTP 服务
3. 在 CPU 测试节点上安装客户端
4. 在 GPU 测试节点上安装客户端
5. 验证安装结果
6. 清理测试环境

## 4. 分步执行

| 步骤         | 脚本                                      | 功能描述                                               |
|--------------|-------------------------------------------|--------------------------------------------------------|
| 启动基础服务 | bash scripts/01_start_services.sh         | 构建 Docker 镜像、创建持久化目录、启动容器服务          |
| 发布安装包   | bash scripts/02_publish_artifact.sh       | 自动递增版本号、打包安装制品、发布到 FTP                |
| CPU 节点安装 | bash scripts/03_test_node_install.sh      | 在 CPU 节点下载安装程序并执行安装                       |
| GPU 节点安装 | bash scripts/04_test_gpu_node_install.sh  | 在 GPU 节点下载安装程序并执行安装                       |
| 验证安装     | bash scripts/05_verify_install.sh         | 检查监控端口、端口连通性及服务可用性                    |
| 清理环境     | bash scripts/06_cleanup.sh                | 停止并清理所有测试容器及环境                            |

## 5. 查看监控采集数据及展示面板

Prometheus 访问以下地址查看节点活性：
``` bash
http://127.0.0.1:9090/targets
```

Grafana 访问以下地址查看监控大屏：
``` bash
http://127.0.0.1:3000/d/node_gpu_metrics/node-and-gpu-metrics
```

PS: 如果 Grafana 未自动导入 Prometheus 数据源，可手动执行以下操作：

1. 添加数据源
- 进入 Grafana → Data sources
- 选择 Add data source → Prometheus
- URL 填写：http://prom.metric.argus.com:9090

2. 导入测试 Dashboard
- 打开 Grafana → Dashboards → Import
- 上传或粘贴 test_grafana_dashboard.json