用于打印各种类型元数据的格式化程序扩展(proto)

此扩展的限定名称为 envoy.formatter.metadata

注意

此扩展功能齐全,但尚未在生产环境中得到充分应用,使用时请注意此问题。

此扩展旨在对不受信任的下游和上游流量都具有鲁棒性。

提示

此扩展扩展了以下扩展类别,并可与之配合使用

此扩展必须使用以下类型 URL 中的一种进行配置

元数据格式化程序扩展实现 METADATA 命令运算符,该运算符打印所有类型的元数据。METADATA 运算符接受的第一个参数定义元数据的类型。支持以下类型的元数据(区分大小写)

  • DYNAMIC

  • CLUSTER

  • ROUTE

  • UPSTREAM_HOST

  • LISTENER

  • VIRTUAL_HOST

有关访问日志配置的更多信息,请参阅 此处

%METADATA(TYPE:NAMESPACE:KEY):Z%

Metadata 信息,其中 TYPE 是元数据的类型(有关支持的类型,请参见上文),NAMESPACE 是设置元数据时使用的过滤器命名空间,KEY 是命名空间中可选的查找键,可以选择指定用“:”分隔的嵌套键,Z 是可选参数,表示字符串截断至不超过 Z 个字符。数据将以 JSON 字符串形式记录。例如,对于以下 ROUTE 元数据

com.test.my_filter: {"test_key": "foo", "test_object": {"inner_key": "bar"}}

  • %METADATA(ROUTE:com.test.my_filter)% 将记录:{"test_key": "foo", "test_object": {"inner_key": "bar"}}

  • %METADATA(ROUTE:com.test.my_filter:test_key)% 将记录:foo

  • %METADATA(ROUTE:com.test.my_filter:test_object)% 将记录:{"inner_key": "bar"}

  • %METADATA(ROUTE:com.test.my_filter:test_object:inner_key)% 将记录:bar

  • %METADATA(ROUTE:com.unknown_filter)% 将记录:-

  • %METADATA(ROUTE:com.test.my_filter:unknown_key)% 将记录:-

  • %METADATA(ROUTE:com.test.my_filter):25% 将记录(截断至 25 个字符):{"test_key": "foo", "test

注意

对于类型化 JSON 日志,当引用的键是简单值时,此运算符会使用字符串、数字或布尔类型渲染单个值。如果引用的键是结构或列表值,则会渲染 JSON 结构或列表。结构和列表可以嵌套。在任何情况下,都会忽略最大长度。

注意

METADATA(DYNAMIC:NAMESPACE:KEY):Z 等效于 DYNAMIC_METADATA(NAMESPACE:KEY):Z METADATA(CLUSTER:NAMESPACE:KEY):Z 等效于 CLUSTER_METADATA(NAMESPACE:KEY):Z METADATA(UPSTREAM_HOST:NAMESPACE:KEY):Z 等效于 UPSTREAM_METADATA(NAMESPACE:KEY):Z

extensions.formatter.metadata.v3.Metadata

[extensions.formatter.metadata.v3.Metadata proto]