前言
随着API的广泛应用,监控和分析API的精准性变得越来越重要。Apisix作为一个开源的API网关工具,提供了流量镜像的功能,可以将API请求实时复制到另一个后端服务中,以便于监控和分析。在本文中,我们将介绍Apisix的流量镜像功能,深入讨论如何配置和使用它来实现更精准的API监控和分析。我们将分享一些最佳实践和技巧,帮助您更好地利用Apisix的流量镜像功能来优化API监控和分析的精准性。
实现目标
事前准备
- 默认上游地址:10.249.0.121:31370
- 镜像上游地址:10.249.0.121:31379
验证过程
使用的插件
使用Apisix官方插件《proxy-mirror | Apache APISIX® – Cloud-Native API Gateway 》
注意:镜像请求返回的响应会被忽略
配置
-
默认情况下,镜像上游没有流量
-
现对/store/v1/n进行流量镜像
-
在路由配置中,进入到插件配置,找到插件proxy-mirror
-
打开启动,后填写参数,参数说明如下
名称 类型 必选项 默认值 有效值 描述 host string 必须 指定镜像服务地址,例如:http://127.0.0.1:9797(地址中需要包含schema :http 或 https,不能包含 path 部分) path string 可选 指定镜像请求的路径。如不指定,当前路径将被使用。 sample_ratio number 可选 1 [0.00001, 1] 镜像请求采样率 -
填写完成后,确认后提交即可生效
-
再次观察镜像上游日志,可以看到10.249.0.121:31379已经开始有流量了
-
关闭插件
在路由配置中,找到插件,将《启用》关闭即可
附加功能
如果需要指定镜像的请求超时时间,可以在conf/config.yaml
中的plugin_attr
指定。
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
connect | string | 60s | 镜像请求到上游的连接超时时间 |
read | string | 60s | 镜像请求到上游的读超时时间 |
send | string | 60s | 镜像请求到上游的写超时时间 |
示例:
plugin_attr:
proxy-mirror:
timeout:
connect: 2000ms
read: 2000ms
send: 2000ms