# U-APM 应用性能监控 OpenAPI

> 鉴权方式：`aliyun-aksk`（ACS3-HMAC-SHA256 V3 签名）
> Endpoint：`https://apm.openapi.umeng.com`
> API Version：`2022-02-14`

## 调用格式

```bash
umeng-cli call '{
  "name": "apm.<Action>",
  "api": {
    "method": "<METHOD>",
    "baseUrl": "https://apm.openapi.umeng.com",
    "endpoint": "<pathname>",
    "authType": "aliyun-aksk"
  }
}' '<参数JSON>'
```

- `action` 可省略，自动从 `endpoint` 路径最后一段推导（首字母大写）
- `version` 可省略，默认 `2022-02-14`

---

## 接口路由表

| Action | 说明 | Method | Pathname |
|--------|------|--------|----------|
| `DeleteSymRecords` | 删除符号表记录 | POST | `/deleteSymRecords` |
| `GetErrorMinuteStatTrend` | 获取错误分钟级趋势 | GET | `/stat/GetErrorMinuteStatTrend` |
| `GetH5PageTrend` | 获取 H5 页面趋势 | GET | `/stat/getH5PageTrend` |
| `GetLaunchTrend` | 获取启动趋势 | GET | `/stat/getLaunchTrend` |
| `GetNativePageTrend` | 获取原生页面趋势 | GET | `/stat/getNativePageTrend` |
| `GetNetworkMinuteTrend` | 获取网络分钟级趋势 | GET | `/stat/getNetworkMinuteTrend` |
| `GetNetworkTrend` | 获取网络趋势 | GET | `/stat/getNetworkTrend` |
| `GetStatTrend` | 获取统计趋势 | GET | `/stat/getStatTrend` |
| `GetSymUploadParam` | 获取符号表上传参数 | GET | `/getSymUploadParam` |
| `GetTodayStatTrend` | 获取今日统计趋势 | GET | `/stat/getTodayStatTrend` |
| `UpdateAlertPlan` | 更新告警方案 | POST | `/updateAlertPlan` |
| `UploadSymbolFile` | 上传符号表文件 | POST | `/uploadSymbolFile` |

---

## 接口详情

### GetStatTrend — 获取统计趋势

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| dataSourceId | string | 是 | 数据源 ID |
| startDate | string | 是 | 起始日期（例如: 2025-01-01） |
| endDate | string | 是 | 截止日期（例如: 2025-01-07） |
| type | string | 是 | 趋势类型 |

```bash
umeng-cli call '{
  "name": "apm.GetStatTrend",
  "api": {
    "method": "GET",
    "baseUrl": "https://apm.openapi.umeng.com",
    "endpoint": "/stat/getStatTrend",
    "authType": "aliyun-aksk"
  }
}' '{"dataSourceId":"your_datasource_id","startDate":"2025-01-01","endDate":"2025-01-07","type":"realtime"}'
```

---

### GetTodayStatTrend — 获取今日统计趋势

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| dataSourceId | string | 是 | 数据源 ID |
| type | string | 是 | 趋势类型 |

```bash
umeng-cli call '{
  "name": "apm.GetTodayStatTrend",
  "api": {
    "method": "GET",
    "baseUrl": "https://apm.openapi.umeng.com",
    "endpoint": "/stat/getTodayStatTrend",
    "authType": "aliyun-aksk"
  }
}' '{"dataSourceId":"your_datasource_id","type":"realtime"}'
```

---

### GetErrorMinuteStatTrend — 获取错误分钟级趋势

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| dataSourceId | string | 是 | 数据源 ID |
| startDate | string | 是 | 起始日期 |
| endDate | string | 是 | 截止日期 |
| type | string | 是 | 错误类型 |

```bash
umeng-cli call '{
  "name": "apm.GetErrorMinuteStatTrend",
  "api": {
    "method": "GET",
    "baseUrl": "https://apm.openapi.umeng.com",
    "endpoint": "/stat/GetErrorMinuteStatTrend",
    "authType": "aliyun-aksk"
  }
}' '{"dataSourceId":"your_datasource_id","startDate":"2025-01-01","endDate":"2025-01-07","type":"crash"}'
```

---

### GetLaunchTrend — 获取启动趋势

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| dataSourceId | string | 是 | 数据源 ID |
| startDate | string | 是 | 起始日期 |
| endDate | string | 是 | 截止日期 |

```bash
umeng-cli call '{
  "name": "apm.GetLaunchTrend",
  "api": {
    "method": "GET",
    "baseUrl": "https://apm.openapi.umeng.com",
    "endpoint": "/stat/getLaunchTrend",
    "authType": "aliyun-aksk"
  }
}' '{"dataSourceId":"your_datasource_id","startDate":"2025-01-01","endDate":"2025-01-07"}'
```

---

### GetH5PageTrend — 获取 H5 页面趋势

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| dataSourceId | string | 是 | 数据源 ID |
| startDate | string | 是 | 起始日期 |
| endDate | string | 是 | 截止日期 |

```bash
umeng-cli call '{
  "name": "apm.GetH5PageTrend",
  "api": {
    "method": "GET",
    "baseUrl": "https://apm.openapi.umeng.com",
    "endpoint": "/stat/getH5PageTrend",
    "authType": "aliyun-aksk"
  }
}' '{"dataSourceId":"your_datasource_id","startDate":"2025-01-01","endDate":"2025-01-07"}'
```

---

### GetNativePageTrend — 获取原生页面趋势

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| dataSourceId | string | 是 | 数据源 ID |
| startDate | string | 是 | 起始日期 |
| endDate | string | 是 | 截止日期 |

```bash
umeng-cli call '{
  "name": "apm.GetNativePageTrend",
  "api": {
    "method": "GET",
    "baseUrl": "https://apm.openapi.umeng.com",
    "endpoint": "/stat/getNativePageTrend",
    "authType": "aliyun-aksk"
  }
}' '{"dataSourceId":"your_datasource_id","startDate":"2025-01-01","endDate":"2025-01-07"}'
```

---

### GetNetworkTrend — 获取网络趋势

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| dataSourceId | string | 是 | 数据源 ID |
| startDate | string | 是 | 起始日期 |
| endDate | string | 是 | 截止日期 |

```bash
umeng-cli call '{
  "name": "apm.GetNetworkTrend",
  "api": {
    "method": "GET",
    "baseUrl": "https://apm.openapi.umeng.com",
    "endpoint": "/stat/getNetworkTrend",
    "authType": "aliyun-aksk"
  }
}' '{"dataSourceId":"your_datasource_id","startDate":"2025-01-01","endDate":"2025-01-07"}'
```

---

### GetNetworkMinuteTrend — 获取网络分钟级趋势

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| dataSourceId | string | 是 | 数据源 ID |
| startDate | string | 是 | 起始日期 |
| endDate | string | 是 | 截止日期 |

```bash
umeng-cli call '{
  "name": "apm.GetNetworkMinuteTrend",
  "api": {
    "method": "GET",
    "baseUrl": "https://apm.openapi.umeng.com",
    "endpoint": "/stat/getNetworkMinuteTrend",
    "authType": "aliyun-aksk"
  }
}' '{"dataSourceId":"your_datasource_id","startDate":"2025-01-01","endDate":"2025-01-07"}'
```

---

### GetSymUploadParam — 获取符号表上传参数

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| dataSourceId | string | 是 | 数据源 ID |
| appVersion | string | 是 | 应用版本号 |
| fileName | string | 是 | 文件名 |
| fileType | number | 是 | 文件类型 |

```bash
umeng-cli call '{
  "name": "apm.GetSymUploadParam",
  "api": {
    "method": "GET",
    "baseUrl": "https://apm.openapi.umeng.com",
    "endpoint": "/getSymUploadParam",
    "authType": "aliyun-aksk"
  }
}' '{"dataSourceId":"your_datasource_id","appVersion":"1.0.0","fileName":"test.zip","fileType":1}'
```

---

### DeleteSymRecords — 删除符号表记录

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| dataSourceId | string | 是 | 数据源 ID |
| appVersions | array | 是 | 要删除的应用版本列表 |

```bash
umeng-cli call '{
  "name": "apm.DeleteSymRecords",
  "api": {
    "method": "POST",
    "baseUrl": "https://apm.openapi.umeng.com",
    "endpoint": "/deleteSymRecords",
    "authType": "aliyun-aksk"
  }
}' '{"dataSourceId":"your_datasource_id","appVersions":["1.0.0"]}'
```

---

### UpdateAlertPlan — 更新告警方案

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| dataSourceId | string | 是 | 数据源 ID |
| planId | number | 是 | 告警方案 ID |

```bash
umeng-cli call '{
  "name": "apm.UpdateAlertPlan",
  "api": {
    "method": "POST",
    "baseUrl": "https://apm.openapi.umeng.com",
    "endpoint": "/updateAlertPlan",
    "authType": "aliyun-aksk"
  }
}' '{"dataSourceId":"your_datasource_id","planId":12345}'
```

---

### UploadSymbolFile — 上传符号表文件

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| dataSourceId | string | 是 | 数据源 ID |
| ossUrl | string | 是 | OSS 文件地址（通过 GetSymUploadParam 获取） |
| appVersion | string | 是 | 应用版本号 |
| fileName | string | 是 | 文件名 |
| fileType | number | 是 | 文件类型 |

```bash
umeng-cli call '{
  "name": "apm.UploadSymbolFile",
  "api": {
    "method": "POST",
    "baseUrl": "https://apm.openapi.umeng.com",
    "endpoint": "/uploadSymbolFile",
    "authType": "aliyun-aksk"
  }
}' '{"dataSourceId":"your_datasource_id","ossUrl":"https://...","appVersion":"1.0.0","fileName":"test.zip","fileType":1}'
```
