更新时间:2025-01-17 GMT+08:00

配置API的流量镜像

API网关提供了镜像客户端请求的能力,将发送到源后端的流量复制一份到镜像服务中,在不影响业务后端的情况下,便于对请求内容进行具体的分析和统计。

约束与限制

  • 同一个环境中,一个API只能被一个流量镜像策略绑定,但一个流量镜像策略可以绑定多个API。
  • 镜像请求返回的响应会被忽略。
  • 镜像请求的请求体大小受实例参数“request_body_size”控制,默认请求体大小为12MB,可通过“request_body_size”参数调整请求体大小,请求体大小调整越大性能损耗越大,请谨慎操作。
  • API的后端服务类型为Mock时,不支持绑定流量镜像策略。
  • 策略和API本身相互独立,只有为API绑定策略后,策略才对API生效。为API绑定策略时需指定发布环境,策略只对指定环境上的API生效。
  • 策略的绑定、解绑、更新会实时生效,不需要重新发布API。
  • API的下线操作不影响策略的绑定关系,再次发布后仍然会带有下线前绑定的策略。
  • 如果策略与API有绑定关系,则策略无法执行删除操作。

创建流量镜像策略

  1. 进入API网关控制台页面。
  2. 根据实际业务在左侧导航栏上方选择实例。
  1. 在左侧导航栏选择“API管理 > API策略”。
  2. 在“策略管理”页面,单击“创建策略”。
  3. 在“选择策略类型”弹窗中,选择“插件策略 > 流量镜像”。
  4. 在“创建策略”弹窗中,根据下表参数说明,配置策略信息。

    表1 流量镜像参数说明

    参数

    说明

    策略名称

    填写策略的名称,根据业务规划自定义。建议您按照一定的命名规则填写策略名称,方便您快速识别和查找。

    支持中文、英文、数字、下划线,且只能以英文或中文开头,长度为3~255个字符。

    策略类型

    固定为“流量镜像”。

    描述

    填写策略的描述信息。长度为1~255个字符。

    策略内容

    策略的配置内容,支持表单配置和脚本配置两种方式。

    镜像协议

    镜像请求协议。指定的镜像服务协议须与用户的镜像业务协议保持一致。

    镜像地址

    镜像服务的地址。由IP/域名和端口号组成,总长度不超过255。格式为主机:端口(如:xxx.xxx.xxx:7443)。如果不写端口号,那么HTTPS默认端口号为443,HTTP默认端口号为80。

    镜像请求路径

    当“镜像协议”为HTTP/HTTPS时设置。

    镜像请求的路径,支持* % - _ .等特殊字符,总长度不超过512,且满足URI规范。如果不指定镜像请求路径,那么默认使用绑定的API的请求路径。

    拼接模式

    当指定镜像请求的路径后,可以设置请求路径的拼接模式。

    • replace模式:表示使用指定的“镜像请求路径”作为镜像请求的路径。
    • prefix模式:表示使用指定的“镜像请求路径”+API的请求路径作为镜像请求的路径。

    采样率

    镜像请求的采样率,取值范围:0.00001~1。当设置为1时为全采样,默认为1。

    例如,API请求流量为1000,采样率为0.1,那么采样的线上请求流量为100。

    超时时间(ms)

    镜像请求的超时时间,单位ms。默认超时时间为5000ms。

    客户端请求体

    镜像客户端的请求体,默认开启镜像客户端请求体。

  5. 单击“确定”。

    如果您需要复制已创建的策略,请在已创建策略的“操作”列中单击“克隆”配置参数即可。克隆策略的名称不能与已创建的策略名称重复。

  6. 策略创建后,您还需要为策略绑定API,才能使策略对API生效。

脚本配置示例

{
  "protocol": "HTTPS",
  "host": "X.X.X.X",
  "sample_ratio": 1,
  "timeout": 5000,
  "mirror_request_body_enabled": true,
  "path": "/ab",
  "path_concat_mode": "replace"
}

为策略绑定API

  1. 单击策略名称,进入策略详情。
  2. 在API列表区域选择环境后,单击“绑定API”。
  3. 筛选API分组以及发布环境,勾选所需的API。

    支持通过API名称或标签筛选API,标签为创建API时定义的标签。

  4. 单击“确定”,绑定完成。

    • 如果单个API不需要绑定此策略,单击API所在行的“解绑”。
    • 如果批量API不需要绑定此策略,则勾选待解绑的API,单击列表上方“解绑”。最多同时解绑1000个API。