[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": "" } ```