nightingale/doc/api.md

689 lines
9.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 前端接口
`POST /api/portal/auth/login`
校验用户登录信息的接口is_ldap=0表示不使用LDAP账号验证is_ldap=1表示使用LDAP账号验证
```
{
"username": "",
"password": "",
"is_ldap": 0
}
```
---
`GET /api/portal/auth/logout`
退出当前账号,如果请求成功,前端需要跳转到登录页面
---
`GET /api/portal/self/profile`
获取个人信息,可以用此接口校验用户是否登录了
---
`PUT /api/portal/self/profile`
更新个人信息
```
{
"dispname": "",
"phone": "",
"email": "",
"im": ""
}
```
---
`PUT /api/portal/self/password`
更新个人密码,新密码输入两次做校验,在前端完成
```
{
"oldpass": "",
"newpass": ""
}
```
---
`GET /api/portal/user`
获取用户列表支持搜索搜索条件参数是query每页显示条数是limit页码是p如果当前用户是root则展示相关操作按钮如果不是则所有按钮不展示只是查看
---
`POST /api/portal/user`
root账号新增一个用户is_root字段表示新增的这个用户是否是个root
```
{
"username": "",
"password": "",
"dispname": "",
"phone": "",
"email": "",
"im": "",
"is_root": 0
}
```
---
`GET /api/portal/user/:id/profile`
获取某个人的信息
---
`PUT /api/portal/user/:id/profile`
root账号修改某人的信息
```
{
"dispname": "",
"phone": "",
"email": "",
"im": "",
"is_root": 0
}
```
---
`PUT /api/portal/user/:id/password`
root账号重置某人的密码输入两次新密码保证一致的校验由前端来做
```
{
"password": ""
}
```
---
`DELETE /api/portal/user/:id`
root账号来删除某个用户
---
`GET /api/portal/team`
获取团队列表支持搜索搜索条件参数是query每页显示条数是limit页码是p
---
`POST /api/portal/team`
创建团队mgmt=0表示成员管理制mgmt=1表示管理员管理制admins是团队管理员的id列表members是团队普通成员的id列表
```
{
"ident": "",
"name": "",
"mgmt: 0,
"admins": [],
"members": []
}
```
---
`PUT /api/portal/team/:id`
修改团队信息
```
{
"ident": "",
"name": "",
"mgmt: 0,
"admins": [],
"members": []
}
```
---
`DELETE /api/portal/team/:id`
删除团队
---
`GET /api/portal/endpoint`
获取endpoint列表用于【服务树】-【对象列表】页面该页展示endpoint列表搜索条件参数是query每页显示条数是limit页码是p如果要做批量筛选则同时要指定用哪个字段(参数名字是field)来筛选只支持ident和alias批量筛选的内容是batch即batch和field一般是同时出现的
---
`POST /api/portal/endpoint`
导入endpoint要求传入列表每一条是ident::alias拼接在一起
```
{
"endpoints": []
}
```
---
`PUT /api/portal/endpoint/:id`
修改一个endpoint的alias信息
```
{
"alias": ""
}
```
---
`DELETE /api/portal/endpoint`
删除多个endpointids参数放到request body里
```
{
"ids": [10000, 200000]
}
```
---
`GET /api/portal/endpoints/bindings`
查询endpoint的绑定关系QueryStringidents逗号分隔多个
---
`GET /api/portal/endpoints/bynodeids`
根据节点id查询挂载了哪些endpointQueryStringids逗号分隔的多个节点id
---
`GET /api/portal/tree`
查询整颗服务树
---
`GET /api/portal/tree/search`
根据节点路径(path)查询服务树子树
---
`POST /api/portal/node`
创建服务树节点pid表示父节点idleaf=0表示非叶子节点leaf=1表示叶子节点note是备注信息
```
{
"pid": 0,
"name": "",
"leaf": 0,
"note": ""
}
```
---
`PUT /api/portal/node/:id/name`
服务树节点改名
```
{
"name": ""
}
```
---
`DELETE /api/portal/node/:id`
删除服务树节点
---
`GET /api/portal/node/:id/endpoint`
获取节点下面的endpoint列表查询字符串使用query每页展示多少条使用limit页码使用p如要批量筛选一行一个使用batch同时必须指定field即使用哪个字段进行批量筛选有ident和alias可选
---
`POST /api/portal/node/:id/endpoint-bind`
绑定一批endpoint到当前节点del_old=1表示同时删除老的挂载关系
```
{
"idents": [],
"del_old": 0
}
```
---
`POST /api/portal/node/:id/endpoint-unbind`
解绑endpoint和节点的挂载关系
```
{
"idents": []
}
```
---
`GET /api/portal/nodes/search`
搜索节点limit表示最多返回多少条query是搜索条件
---
`GET /api/portal/nodes/leafids`
获取节点对应的叶子节点的id参数是ids逗号分隔的多个节点id
---
`GET /api/portal/nodes/pids`
获取节点对应的父、祖节点的id参数是ids逗号分隔的多个节点id
---
`GET /api/portal/nodes/byids`
查询节点的信息参数是ids逗号分隔的多个节点id返回这多个节点的信息
---
`GET /api/portal/node/:id/maskconf`
获取报警屏蔽列表,因为已经是某个节点下的了,量比较少,后端不分页
---
`POST /api/portal/maskconf`
创建一个报警屏蔽策略
```
{
"nid": 0,
"endpoints": [],
"metric": "",
"tags": "",
"cause": "",
"btime": 1563838361,
"etime": 1563838461
}
```
---
`PUT /api/portal/maskconf/:id`
修改一个报警屏蔽策略
```
{
"endpoints": [],
"metric": "",
"tags": "",
"cause": "",
"btime": 1563838361,
"etime": 1563838461
}
```
---
`DELETE /api/portal/maskconf/:id`
删除一个报警屏蔽策略
---
`GET /api/portal/node/:id/screen`
获取screen列表因为已经是某个节点下的了量比较少后端不分页
---
`POST /api/portal/node/:id/screen`
创建screen
```
{
"name": ""
}
```
---
`PUT /api/portal/screen/:id`
修改screen其中node_id顺带也可以修改这样screen相当于直接挪动了挂载节点
```
{
"name": "",
"node_id": 0
}
```
---
`DELETE /api/portal/screen/:id`
删除某个screen
---
`GET /api/portal/screen/:id/subclass`
获取screen下面的子类返回的subclass按照weight字段排序
---
`POST /api/portal/screen/:id/subclass`
创建subclass
```
{
"name": "",
"weight": 0
}
```
---
`PUT /api/portal/subclass`
批量修改subclass
```
[
{
"id": 1,
"name": "a",
"weight": 1
},
{
"id": 2,
"name": "b",
"weight": 0
}
]
```
---
`DELETE /api/portal/subclass/:id`
删除某个subclass
---
`PUT /api/portal/subclasses/loc`
修改subclass的location即所属的screen
```
[
{
"id": 1,
"screen_id": 1
},
{
"id": 2,
"screen_id": 1
}
]
```
---
`GET /api/portal/subclass/:id/chart`
获取chart列表根据chart的weight排序不分页
---
`POST /api/portal/subclass/:id/chart`
创建chart
```
{
"configs": "",
"weight": 0
}
```
---
`PUT /api/portal/chart/:id`
修改某个chart的信息
```
{
"subclass_id": 1,
"configs": ""
}
```
---
`DELETE /api/portal/chart/:id`
删除某个chart
---
`PUT /api/portal/charts/weights`
修改chart的排序权重
```
{
"id": 1,
"weight": 9
}
```
---
`GET /api/portal/tmpchart`
获取临时图参数是QueryStringids逗号分隔的多个id
---
`POST /api/portal/tmpchart`
创建一个临时图返回生成的临时图的id列表
```
[
{
"configs": ""
},
{
"configs": ""
}
]
```
---
`GET /api/portal/event/cur`
获取某个节点下的未恢复报警列表QueryString
- 节点路径nodepath
- 开始时间stime
- 结束时间etime
- 每页条数limit
- 查询条件query
- 优先级priorities逗号分隔的多个
- 发送类型sendtypes逗号分隔的多个
---
`GET /api/portal/event/cur/:id`
获取当前某一个未恢复的报警
---
`DELETE /api/portal/event/cur/:id`
删除当前某一个未恢复的报警
---
`POST /api/portal/event/curs/claim`
认领某一些未恢复的告警避免告警升级到老板那里id和nodepath只能传入一个不能同时传入也不能一个都不传业务上的语义是要么认领某一个告警事件要么认领某个节点下的所有告警事件
```
{
"id": 1,
"nodepath": ""
}
```
---
`GET /api/portal/event/his`
获取某个节点下的所有报警列表QueryString
- 节点路径nodepath
- 开始时间stime
- 结束时间etime
- 每页条数limit
- 查询条件query
- 优先级priorities逗号分隔的多个
- 发送类型sendtypes逗号分隔的多个
- 事件类型type
---
`GET /api/portal/event/his/:id`
获取某个历史告警事件
---
`GET /api/portal/collect/list`
获取某个节点下面配置的采集策略必传QueryString: nid表示节点id后端不分页返回全部
---
`GET /api/portal/collect`
获取单个采集配置的详情QueryStringtype和id都必传type是port、proc、log之一。
---
`POST /api/portal/collect`
创建一个采集策略
```
{
"type": "",
"data": {
# 端口、进程、日志配置不同参阅model/collect.go
}
}
```
---
`PUT /api/portal/collect`
修改一个采集策略
```
{
"type": "",
"data": {
# 端口、进程、日志配置不同参阅model/collect.go
}
}
```
---
`DELETE /api/portal/collect`
删除采集策略
```
{
"type": "",
"ids": []
}
```
---
`POST /api/portal/collect/check`
校验用户输入的数据是否匹配正则,跟商业版本数据结构一致
---
`POST /api/portal/stra`
新增告警策略,跟商业版本数据结构一致
---
`PUT /api/portal/stra`
修改告警策略,跟商业版本数据结构一致
---
`DELETE /api/portal/stra`
删除告警策略,跟商业版本数据结构一致
---
`GET /api/portal/stra`
获取告警策略列表,跟商业版本数据结构一致
---
`GET /api/portal/stra/:id`
获取单个告警策略,跟商业版本数据结构一致