Envoy Thrift 到元数据过滤器
此过滤器应使用类型 URL
type.googleapis.com/envoy.extensions.filters.http.thrift_to_metadata.v3.ThriftToMetadata
配置。
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 消息无效的总响应数 |