API 监控适合业务在互联网上,并且用户来自多个不同的地区,且对API的要求较高的场合,用于解决以下的问题:
- 发现由于网络中断或者是API响应异常等导致的服务不可用;
- 及时对异常的API进行告警;
- 记录监控的日志,方便排查。
Eolink Apikit 除了提供 API 的管理和自动化测试等功能,还提供 API 监控服务,可以为 API 设置定时拨测,并且支持多节点监控,可以从多个不同的地区节点来模拟用户的请求进行监控。
1、创建流程监控
API 流程监控可以同时对多个 API 进行监控,你可以设置多个 API 的监控顺序,数据关联等信息,满足对重点业务场景、操作流程的监控。
进入场景监控设置页面,点击 添加流程
按钮,进入流程编辑页面。
在流程编辑页面中设置流程的名称、监控环境、监控频率、监控节点等信息。
2、为流程添加 API
1. 添加 API
进入流程编辑页后,点击添加 监控步骤
按钮,在下拉菜单中可以选择从 Eolinker API Management(API 管理产品)中导入 API 信息,或者手动创建监控 API。
2. 设置 API 监控信息
点击 新建空白API步骤
的按钮,进入 API 的编辑页后,你可以设置 API 的基本信息、请求信息、校验规则等内容。
API监控的基础信息包括:
- API请求地址
- API分组、名称
- 超时限制:当API的响应时间超出设定的限制时间时,系统将会自动中断该次监控请求,并且报请求超时异常。
3. 请求头部
你可以输入或导入请求头部。批量导入的数据格式为 key : value
,一行一条 header
信息,如:
Connection: keep-alive
Content-Encoding: gzip
Content-Type: application/json
Date: Mon, 30 Dec 2019 20:49:45 GMT
4. 请求体
请求体支持以下类型:Form-data(表单)、JSON、XML、Raw(自定义文本类型数据)。
5. Query 参数
Query参数指的是地址栏中跟在问号 ?
后面的参数,如以下地址中的 user_name
参数:
shop/query?shop_id=001
批量导入的数据格式为 ?key=value
,通过 &
分隔多个参数,如:
api.eolinker.com/user/login?user_name=jackliu&user_password=hello
6. REST 参数
REST参数指的是地址栏被斜杠 /
分隔的参数,如以下地址中的 user_name
、user_password
参数。
/user/login/{user_name}/{user_password}
注意:只需要在URL中使用 {}
将REST参数括起来,下方的请求参数名中不需要使用 {}
。
7. 权限校验
如果访问API时需要先进行身份验证,可以在权限校验处填写校验的信息。
3、设置 API 之间的数据关系
同一个流程里的不同 API 之间可以进行数据关联。比如一个监控流程里有两个 API:
- 门店创建(
/shop/create
):创建门店后,会得到返回参数shop_id
。 - 门店查询(
/shop/query
):根据shop_id
来查询具体的门店。
我们先设置门店创建API的请求参数和预设返回结果。进入用户登录API的编辑页面:
然后我们设置门店查询API。门店查询API只有一个请求参数 shop_id
,shop_id
的参数值通过门店创建API的返回结果获得。进入门店查询API的编辑页面,设置门店查询API的请求参数,点击参数值的输入框时,上方会出现两个按钮,点击 引用参数值
按钮:
在弹窗中选择要绑定的API以及返回参数名称:
点击 确认
按钮即可将用户创建API的返回结果绑定到门店查询API的请求参数中。
在执行流程监控的时候,系统会自动将门店创建API的 shop_id
的返回参数动态绑定到门店查询API的请求参数中:
4、改变流程的 API 顺序
拖动 API 列表可以改变 API 的执行顺序。但是如果 API 之间存在数据关联,则拖动步骤有可能会破坏 API 之间的数据关联,导致无法正常获得绑定的参数值。
5、开启流程监控
流程创建好之后,可以在流程页面的上方点击 开启监控
按钮,来开启流程的监控:
也可以在流程列表,操作栏出点击 更多
按钮,在下拉菜单选择 开启监控
:
还可以通过流程列表顶部的 批量操作
按钮,来开启监控:
生产环境可能存在同时运行多个版本的代码,并且每个版本的代码都有可能独立迭代,最终分化出不同的版本。如果我们需要对历史版本的API进行自动化测试,或者通过监控来验证线上的稳定性,那么我们可以给每一个版本的API创建一个项目。因为在 Eolink Apikit 中,我们可以为每一个项目设置监控,并且可以独立运行测试用例,满足复杂的API治理的需求。