nightingale/doc/api.md

9.9 KiB
Raw Blame History

前端接口

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

获取单个告警策略,跟商业版本数据结构一致