众所周知的动态元数据

过滤器可以通过 setDynamicMetadata 来发送动态元数据,而通常在 连接 中的 StreamInfo 接口中。过滤器发送的元数据可以被其他过滤器所消费,可以通过级联这种过滤器来构建有用的特性。比如,一个日志过滤器可以消费来自 RBAC 过滤器的动态元数据,以此来记录运行时影子规则的详细日志信息。另外一个例子是 RBAC 过滤器通过查看由 MongoDB 过滤器发出的操作元数据,来对 MySQL/MongoDB 的操作作出许可/限制。

如下 Envoy 过滤器发出动态元数据,然后数据被其他过滤器所使用。

如下 Envoy 过滤器可以通过配置来消费由其他过滤器发出动态元数据。

共享动态元数据

通过多个过滤器设置的动态元数据位于公共的密钥命名空间(common key namespace) envoy.common 中。当设置此类元数据时,可查看与其对应的规则。

名称

类型

描述

规则

access_log_hint

boolean

访问记录器是否要记录请求。

当此元数据已经设置为:true 值不应该被 false 值覆盖,而 false 值可以被 true 覆盖。

如下 Envoy 过滤器发出共享动态元数据。

如下 Envoy 过滤器消费共享动态元数据。