8.monitoring.md•6.51 kB
# OCP 监控 API 文档
---
## 1. 监控数据查询
### 1.1 查询监控数据并附加标签 (`GET /api/v2/monitor/metricsWithLabel`)
#### 功能说明
查询指定指标的监控数据,并返回带有标签分组的时序数据。
#### 接口约束
- 需通过 OCP 应用服务鉴权。
#### 请求参数
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|----------------|----------------|------|---------------------------------|----------------------------------------------------------------------|
| `startTime` | `Datetime` | 是 | `2020-02-16T05:32:16+08:00` | 监控数据的开始时间。格式:`YYYY-MM-DDTHH:mm:ss+08:00` |
| `endTime` | `Datetime` | 是 | `2020-02-16T07:32:16+08:00` | 监控数据的结束时间。格式同上。 |
| `metrics` | `StringArray` | 是 | `io_read_time,io_write_time` | 需查询的监控指标数组。 |
| `groupBy` | `StringArray` | 是 | `app,obregion,ob_cluster_id` | 用于汇总数据的标签名称。 |
| `interval` | `Integer` | 是 | `60` | 时间粒度(秒)。 |
| `minStep` | `Integer` | 否 | `10` | 最小采样间隔(秒),默认 `0`。 |
| `maxPoints` | `Integer` | 否 | `360` | 最大返回点数,默认 `1440`。 |
| `labels` | `StringArray` | 是 | `app:ob,obregion=foo` | 过滤条件,格式:`key=value`(键值对用逗号分隔)。 |
#### 返回结果
- **基础结构**
```json
{
"data": {
"contents": [ ... ], // 分组数据数组
"page": { ... } // 分页信息
},
"successful": true,
"timestamp": "...",
"duration": 0,
"status": 200,
"traceId": "...",
"server": "..."
}
```
- **分组数据结构**
```json
{
"标签A": "...", // 根据 `groupBy` 指定的标签名称
"标签B": "...",
"data": [
{
"timestamp": 0, // 时间戳(秒)
"指标名A": 0.0, // 指标值
"指标名B": 0.0
}
]
}
```
#### 示例
- **请求示例**(注:URL 中存在参数名缺失错误)
```http
GET /api/v2/monitor/metricsWithLabel?labels=app%3Aob&groupBy=app%2Cobregion%2Cob_cluster_id&metrics=sql_all_count&interval=1&startTime=2020-11-11T18%3A30%3A00.000%2B08%3A00&endTime=2020-11-11T19%3A00%3A00.000%2B08%3A00
```
- **返回示例**
```json
{
"data": {
"contents": [
{
"app": "OB",
"obregion": "ob1",
"ob_cluster_id": "2",
"data": [
{ "sql_all_count": 38.00, "timestamp": 1605608370 }
]
}
]
},
"successful": true
}
```
---
### 1.2 基础监控数据查询 (`GET /api/v2/monitor/metric`)
#### 功能说明
查询指定指标的监控数据,返回未经标签分组的时序数据。
#### 接口约束
- 需通过 OCP 应用服务鉴权。
#### 请求参数
与 `metricsWithLabel` 接口参数一致,但返回结果不包含标签分组。
#### 返回结果
- **基础结构**
```json
{
"data": {
"contents": [ ... ], // 直接返回的监控数据点数组
"page": { ... }
},
"successful": true
}
```
- **数据点结构**
```json
{
"timestamp": 0,
"指标名A": 0.0,
"指标名B": 0.0
}
```
#### 示例
- **请求示例**
```http
GET /api/v2/monitor/metric?startTime=2020-11-11T18%3A30%3A00.000%2B08%3A00&endTime=2020-11-11T19%3A00%3A00.000%2B08%3A00&interval=60&metrics=net_recv%2Cnet_send&labels=app%3Aob%2Cobregion%3Aob1%2Cob_cluster_id%3A1&groupBy=app%2Cobregion%2Cob_cluster_id
```
- **返回示例**
```json
{
"data": {
"contents": [
{ "net_recv": 0.3, "net_send": 0.31, "timestamp": 1605609840 }
]
}
}
```
---
## 2. 指标元数据查询 (`GET /api/v2/monitor/metricGroups`)
#### 功能说明
获取 OCP 支持的监控指标元数据,包括指标分类、分组及具体指标信息。
#### 接口约束
- 需通过 OCP 应用服务鉴权。
#### 请求参数
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|--------|--------|------|--------|----------------------------------------------------------------------|
| `page` | `Int` | 否 | `1` | 分页页码,从 1 开始,默认 `1`。 |
| `size` | `Int` | 否 | `10` | 分页大小,默认 `10`,最大 `2000`。 |
| `type` | `String` | 是 | `TOP` | 指标类型:`TOP`(Top 类指标)、`NORMAL`(普通指标)。 |
| `scope`| `String` | 是 | `CLUSTER` | 指标范围:`CLUSTER`(集群)、`TENANT`(租户)、`HOST`(主机)、`OBPROXY`(OBProxy)。 |
#### 返回结果
- **基础结构**
```json
{
"data": {
"contents": [ ... ], // 指标大类数组
"page": { ... }
},
"successful": true
}
```
- **指标大类结构**
```json
{
"id": 0,
"key": "metric_cluster_top",
"name": "集群TOP指标",
"description": "...",
"scope": "CLUSTER",
"type": "TOP",
"metricGroups": [ ... ] // 指标分组数组
}
```
- **指标分组结构**
```json
{
"id": 47,
"key": "QPS",
"name": "QPS",
"description": "...",
"withLabel": false,
"metrics": [ ... ] // 指标元数据数组
}
```
- **指标元数据结构**
```json
{
"id": 1000061,
"key": "sql_all_count",
"name": "all",
"description": "...",
"unit": "times/s",
"displayByDefault": true
}
```
#### 示例
- **请求示例**
```http
GET /api/v2/monitor/metricGroups?scope=CLUSTER&type=TOP
```
- **返回示例**
```json
{
"data": {
"contents": [
{
"metricGroups": [
{
"metrics": [
{
"key": "sql_all_count",
"unit": "times/s"
}
]
}
]
}
]
}
}
```
---