网关请求日志添加自定义属性¶
微服务引擎的网关底层使用的是 contour 作为控制面下发配置给 envoy, 其中请求日志的记录字段也会作为一项配置由 contour 下发给 envoy, 因此只需要在 contour 的配置文件中增加响应的需要记录的字段即可。
具体步骤如下:
-
进入微服务引擎——云原生网关列表,找到需要修改配置的网关所在的集群和命名空间。
-
在网关所在的集群和命名空间查询自定义 CR ContourConfiguration。
-
编辑上一步查询到的 CR 资源,在
.spec.envoy.logging.accessLogJSONFields
中增加想要记录的日志字段属性, 例如想要增加一个日志字段为响应头的 X-Envoy-Upstream-Service-Time 字段,可以增加一行X-Envoy-Upstream-Service-Time=%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%
。编辑前:
编辑后:
-
重启 contour 组件(不会对流量造成中断)
-
Pod 启动成功后通过网关 API 访问接口,通过网关日志观察日志记录字段
选择某一条日志,查看原文:
可以看到自定义的响应头已经增加到了日志记录中。
Note
该功能适用于微服务引擎 0.29.0 及更高版本。