[TOC]
Swoole 企業版系統對外開放`API`接口,說明如下:
## 1\. 獲取監控機器列表
接口地址:`/Http/getMachineList`
請求參數:
| 參數 | 值 | 說明 |
| --- | --- | --- |
| page | 1 | 頁數,默認1 |
| pagesize | 10 | 顯示數量,默認10 |
響應參數:
```json
{
"code": 0,
"message": "獲取成功",
"data": {
"data": [
{
"id": "3", // id
"lan_ip": "172.17.16.15", // 機器ip
"hostname": "sy-test", // 主機名
"cpu": {
"num": 1, // 核數
"model": "intel(r) xeon(r) cpu e5-26xx v4"
},
"star": "0", // 是否關注
"extra": { // 自定義信息
"name": "騰訊云",
"out_ip": "127.0.0.3"
},
"time": 1557806007 // 最后上報時間
},
{
"id": "2",
"lan_ip": "172.31.202.116",
"hostname": "iZj6cf6lmymbaq0c5nykafZ",
"cpu": {
"num": 1,
"model": "intel(r) xeon(r) cpu e5-2682 v4 @ 2.50ghz"
},
"star": "0",
"extra": {},
"time": 0 // 機器創建了但是沒有上報機器信息
}
],
"count": 2, // 機器總數
"success": 2, // 運行中的機器
"error": 0, // 停止運行的機器,
"error_node": [ // 停止運行的機器
"192.168.2.181"
],
"totalpage": 1 // 總頁數
}
}
```
## 2\. 標識關注機器
接口地址:`/Http/setMachineStar`
請求參數:
| 參數 | 值 | 說明 |
| --- | --- | --- |
| ip | 172.17.0.3 | 機器IP,必填 |
| star | 1或0 | 1 關注 0 不關注,必填 |
響應參數:
```json
{
"code": 0,
"message": "添加關注成功",
"data": true
}
{
"code": 0,
"message": "取消關注成功",
"data": true
}
```
## 3\. 獲取關注服務器列表及相應CPU使用率
接口地址:`/Http/getMachineCpu`
請求參數:
| 參數 | 值 | 說明 |
| --- | --- | --- |
| page | 1 | 頁數,默認1 |
| pagesize | 6 | 顯示數量,默認6 |
響應參數:
```json
{
"code": 0,
"message": "獲取成功",
"data": {
"data": [
{
"_node": "172.17.16.15", // 機器ip
"_time": "2019-03-29 11:39:01",
"_value0": 3.42, // cpu使用率
"cpu": 1 // cpu核數
}
],
"totalpage": 1 // 總頁數
}
}
```
## 4\. 獲取主機當前情況
TCP連接數,TCP最大連接數;CPU核數,CPU使用率;網絡出入流量;進程數;磁盤讀寫IO次數、util;磁盤使用情況;內存大小,內存使用情況(總使用,緩存內容,空閑內存)
接口地址:`/Http/getSysinfo`
請求參數:
| 參數 | 值 | 說明 |
| --- | --- | --- |
| ip | 172.17.16.15 | 機器IP,必填 |
響應參數:
```json
{
"code": 0,
"message": "獲取成功",
"data": {
"cpu": 1, // CPU核數
"use_cpu": 3.47, // CPU使用率
"tcp_num": "6", // TCP連接數
"tcp_max": "14", // TCP最大連接數
"io": [ // 磁盤IO
{
"name": "io_sda",
"io_r": 0, // 讀
"io_w": 3.84, // 寫
"io_util": 0.27 // until
}
],
"disk": [ // 磁盤使用情況
{
"name": "disk_sda1",
"use": 31.96, // 使用量 百分比
"free": 68.04, // 空閑量 百分比
"all": 49.09 // 磁盤容量 G
}
],
"mem": { // 內存
"total": 991.76,
"free": 95.27,
"available": 536.68,
"buffers": 68.28,
"cached": 481.18
},
"net": [ // 網絡出入流量
{
"name":"net_eth0",
"out": "1672", // 出網
"in": "1420" // 入網
}
],
"process": [ // 進程
{
"pid": "19234", // pid
"status": "0", // 狀態 1 忙 0 空閑
"type": "FPM", // fpm和cli
"value": 3.5 // 內存占用
},
{
"pid": "30822",
"status": "0",
"type": "FPM",
"value": 6.38
},
{
"pid": "30824",
"status": "0",
"type": "FPM",
"value": 11.31
},
{
"pid": "30825",
"status": "0",
"type": "FPM",
"value": 11.43
},
{
"pid": "16703",
"status": "0",
"type": "CLI",
"value": 11.43
}
],
"count_process": 5 // 進程總數
}
}
```
## 5\. 獲取應用
接口地址:`/Http/getModuleList`
請求參數:
| 參數 | 值 | 說明 |
| --- | --- | --- |
| project | 9 | 項目ID(接口8獲取),必填 |
響應參數:
```json
{
"code": 0,
"message": "獲取成功",
"data": [
{
"id": "8", // ID
"name": "www.php-app.com", // 名稱
"type": "1",
"alias_name": "" // 別名
},
{
"id": "34",
"name": "test.qq52o.cn",
"type": "1",
"alias_name": ""
}
]
}
```
## 6\. 獲取應用下的接口信息
接口地址:`/Http/getInterfaceByModuleId`
請求參數:
| 參數 | 值 | 說明 |
| --- | --- | --- |
| module\_id | 8 | 應用ID,上一個接口獲取的,必填 |
| page | 1 | 頁數,默認1 |
| pagesize | 10 | 顯示數量,默認10 |
響應參數:
```json
{
"code": 0,
"message": "獲取成功",
"data": {
"data": [
{
"id": "119700", // id
"name": "/blog/detail/54", // 接口名
"alias": "/blog/detail/54||1", // 別名
"addtime": "2019-05-01 12:57:03" // 添加時間
}
],
"totalpage": 15618 // 總頁數
}
}
```
## 7\. 獲取接口詳情
接口地址:`/Http/getInterfaceInfo`
請求參數:
| 參數 | 值 | 說明 |
| --- | --- | --- |
| module\_id | 8 | 應用ID,必填 |
| interface\_id | 463 | 接口ID,必填 |
| date\_key | 2019-03-29 | 日期,必填 |
| hour\_start | 02 | 開始時間 |
| hour\_end | 10 | 結束時間 |
響應參數:
```json
{
"code": 0,
"message": "獲取成功",
"data": [
{
"id": "975",
"interface_id": "463",
"module_id": "34",
"instance_id": "21",
"req_type": "2",
"time_key": "138",
"date_key": "2019-03-29", // 日期
"total_count": "4", // 調用次數
"fail_count": "0", // 失敗次數
"total_time": "723",
"total_fail_time": "0",
"avg_time": "181", // 平均響應時間
"avg_fail_time": "0", // 失敗平均時間
"max_time": "288", // 響應最大值ms
"min_time": "97", // 響應最小值
"fail_server": "",
"succ_server": "{\"121.46.248.88\":2,\"221.230.143.58\":1,\"221.230.143.101\":1}",
"total_server": "{\"121.46.248.88\":2,\"221.230.143.58\":1,\"221.230.143.101\":1}",
"fail_client": "",
"succ_client": "{\"121.227.207.179\":4}",
"total_client": "{\"121.227.207.179\":4}",
"ret_code": "",
"cost_time": "{\"5\":0,\"10\":0,\"50\":0,\"100\":1,\"200\":1,\"500\":2,\"1000\":0,\"1000+\":0}",
"succ_ret_code": "{\"200\":4}",
"succ_count": 4, // 成功次數
"succ_rate": 100, // 成功率
"time_str": "11:30 ~ 11:35", // 時間
"interface_name": "Index.php:app\\\\index\\\\controller\\\\Index->myCurl->curl_exec"
}
]
}
```
## 8\. 獲取項目id
接口地址:`/Http/getProjectId`
請求參數:
| 參數 | 值 | 說明 |
| --- | --- | --- |
| page | 1 | 頁數,默認1 |
響應參數:
```json
{
"code": 0,
"message": "獲取成功",
"data": {
"data": [
{
"id": "19", // 項目id
"name": "默認項目",
"ckey": "default_web_project",
"owner_uid": "0",
"intro": "所有自動創建的模塊都會默認在此項目中,可以移動到其他項目中",
"add_time": "2019-04-22 19:17:14"
},
{
"id": "9",
"name": "基礎服務",
"ckey": "platform",
"owner_uid": "94",
"intro": "基礎支撐業務",
"add_time": "2018-10-07 22:32:56"
}
],
"totalpage": 1 //總頁數
}
}
```
## 9\. 機器擴展信息
可針對某臺機器增加擴展信息,也可按擴展信息進行分類
### 9.1 獲取數據
接口地址:`/Http/optionsExtra`
* 獲取某一臺機器的擴展信息
請求參數:
| 參數 | 值 | 說明 |
| --- | --- | --- |
| ip | 172.17.16.15 | 機器IP |
響應參數:
```json
{
"code": 0,
"message": "獲取成功",
"data": {
"name": "阿里云", // 自定義字段,內容
"out_ip": "127.0.0.1"
}
}
```
* 獲取所有機器擴展信息
請求參數:
| 參數 | 值 | 說明 |
| --- | --- | --- |
| type | name | 自定義字段(必填,可為空),根據此字段分類 |
| value | 阿里云 | 自定義字段對應的內容,根據此字段統計數量 |
以實例給予說明如下:
>[info] 請求: `/Http/optionsExtra?type`
響應參數:
```json
{
"code": 0,
"message": "獲取成功",
"data": {
"data": [ // 機器信息
{
"lan_ip": "172.17.0.4", // 機器ip
"extra": { // 自定義內容
"name": "騰訊云",
"out_ip": "127.0.0.2"
}
},
{
"lan_ip": "192.168.2.171",
"extra": {
"name": "騰訊云",
"out_ip": "127.0.0.3",
"ceshi": "1"
}
},
{
"lan_ip": "192.168.2.181",
"extra": []
},
{
"lan_ip": "172.17.16.15",
"extra": {
"name": "阿里云",
"out_ip": "127.0.0.1"
}
},
{
"lan_ip": "172.31.202.116",
"extra": []
},
{
"lan_ip": "172.31.0.4",
"extra": []
}
],
"node": [], // 以下3個參數在現在這種情況下始終為空。
"keys": [],
"count": 0
}
}
```
>[info] 請求: `/Http/optionsExtra?type=name`
響應參數:
```json
{
"code": 0,
"message": "獲取成功",
"data": {
"data": [ // 機器信息
{
"lan_ip": "172.17.0.4", // 機器ip
"extra": { // 自定義內容
"name": "騰訊云",
"out_ip": "127.0.0.2"
}
},
{
"lan_ip": "192.168.2.171",
"extra": {
"name": "騰訊云",
"out_ip": "127.0.0.3",
"ceshi": "1"
}
},
{
"lan_ip": "192.168.2.181",
"extra": []
},
{
"lan_ip": "172.17.16.15",
"extra": {
"name": "阿里云",
"out_ip": "127.0.0.1"
}
},
{
"lan_ip": "172.31.202.116",
"extra": []
},
{
"lan_ip": "172.31.0.4",
"extra": []
}
],
"node": [], // 一直為空
"keys": [ // 根據name字段分類
"騰訊云",
"阿里云"
],
"count": 0 // 一直為0
}
}
```
>[info] 請求: `/Http/optionsExtra?type=name&value=阿里云`
響應參數:
```json
{
"code": 0,
"message": "獲取成功",
"data": {
"data": [ // 機器信息
{
"lan_ip": "172.17.0.4", // 機器ip
"extra": { // 自定義內容
"name": "騰訊云",
"out_ip": "127.0.0.2"
}
},
{
"lan_ip": "192.168.2.171",
"extra": {
"name": "騰訊云",
"out_ip": "127.0.0.3",
"ceshi": "1"
}
},
{
"lan_ip": "192.168.2.181",
"extra": []
},
{
"lan_ip": "172.17.16.15",
"extra": {
"name": "阿里云",
"out_ip": "127.0.0.1"
}
},
{
"lan_ip": "172.31.202.116",
"extra": []
},
{
"lan_ip": "172.31.0.4",
"extra": []
}
],
"node": [ // 當name等于阿里云時的機器ip
"172.17.16.15"
],
"keys": [ // name分類
"騰訊云",
"阿里云"
],
"count": 1 // 當name等于阿里云時的機器總數
}
}
```
### 9.2 添加數據
該接口需要 `POST` 請求,??每次請求會進行覆蓋寫
>[warning] 請自行根據 `9.1 獲取數據` 中的 `獲取某一臺機器的擴展信息` 處理數據
接口地址: `/Http/optionsExtra`
請求參數:
| 參數 | 值 | 說明 |
| --- | --- | --- |
| ip | 172.17.16.15 | 機器IP |
| options | name=騰訊云,out\_ip=127.0.0.3 | 要設置的自定義信息,以英文逗號分割 |
響應參數:
```json
{
"code": 0,
"message": "設置成功",
"data": ""
}
{
"code": 1,
"message": "設置失敗",
"data": ""
}
```