Envoy Thrift 到元数据过滤器

  • 此过滤器应使用类型 URL type.googleapis.com/envoy.extensions.filters.http.thrift_to_metadata.v3.ThriftToMetadata 配置。

  • v3 API 参考

thrift 到元数据过滤器用于通过 HTTP 的 thrift 流量,期望 HTTP 负载中包含序列化 thrift 请求和响应消息。此过滤器使用将与 HTTP 负载中的 Apache thrift 兼容请求和响应匹配的规则进行配置。过滤器将解析 thrift 消息,提取 *thrift 元数据* 或 *thrift 负载*,并根据规则的配置将其添加到 *动态过滤器元数据* 中。

*过滤器元数据* 然后可用于负载均衡决策、从日志中使用等。

此过滤器的典型用例是动态匹配请求的指定 thrift 方法与速率限制。为此,thrift 方法名称作为动态过滤器元数据附加到请求,然后用于匹配过滤器元数据上的速率限制操作。

示例

一个示例过滤器配置,根据版本属性的存在或不存在路由流量到端点

25          http_filters:
26          - name: envoy.filters.http.thrift_to_metadata
27            typed_config:
28              "@type": type.googleapis.com/envoy.extensions.filters.http.thrift_to_metadata.v3.ThriftToMetadata
29              request_rules:
30              - field: PROTOCOL
31                on_present:
32                  metadata_namespace: envoy.lb
33                  key: protocol
34                on_missing:
35                  metadata_namespace: envoy.lb
36                  key: protocol
37                  value: "unknown"
38              - field: TRANSPORT
39                on_present:
40                  metadata_namespace: envoy.lb
41                  key: transport
42                on_missing:
43                  metadata_namespace: envoy.lb
44                  key: transport
45                  value: "unknown"
46              response_rules:
47              - field: MESSAGE_TYPE
48                on_present:
49                  metadata_namespace: envoy.filters.http.thrift_to_metadata
50                  key: response_message_type
51                on_missing:
52                  metadata_namespace: envoy.filters.http.thrift_to_metadata
53                  key: response_message_type
54                  value: "exception"
55              - field: REPLY_TYPE

统计信息

thrift 到元数据过滤器在 *http.<stat_prefix>.thrift_to_metadata.* 命名空间中输出统计信息。 stat 前缀 来自拥有 HTTP 连接管理器。

名称

类型

描述

rq_success

计数器

成功解析 thrift 消息的总请求数。

rq_mismatched_content_type

计数器

内容类型不匹配的总请求数

rq_no_body

计数器

没有 http 实体的总请求数

rq_invalid_thrift_body

计数器

thrift 消息无效的总请求数

resp_success

计数器

成功解析 thrift 消息的总响应数。

resp_mismatched_content_type

计数器

内容类型不匹配的总响应数

resp_no_body

计数器

没有 http 实体的总响应数

resp_invalid_thrift_body

计数器

thrift 消息无效的总响应数