外部处理

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

  • v3 API 参考

外部处理过滤器将外部服务(称为“外部处理器”)连接到过滤器链。处理服务本身实现了一个 gRPC 接口,允许它通过检查和修改每个消息的标头、正文和尾部,或通过返回全新的响应来响应 HTTP 请求/响应生命周期中的事件。

协议本身基于双向 gRPC 流。Envoy 将向外部处理器发送 ProcessingRequest 消息,处理器必须使用 ProcessingResponse 消息进行回复。

提供配置选项来控制发送到处理器的事件。这样,处理器就可以接收请求和响应的标头、正文和尾部,无论它们以何种组合方式存在。处理器还可以逐消息地更改此配置。这允许构建复杂的处理器,它们决定如何单独响应每条消息,以消除代理不必要的流请求。

此过滤器仍在开发中。大多数主要功能已完成。可以在 参考页面 上找到支持功能和实现状态的更新列表。

统计信息

此过滤器在 http.<stat_prefix>.ext_proc. 命名空间中输出统计信息。 统计信息前缀 来自拥有 HTTP 连接管理器。

支持以下统计信息

名称

类型

描述

streams_started

计数器

已启动以发送到外部处理服务的 gRPC 流的数量

streams_msgs_sent

计数器

在这些流上发送的消息数量

streams_msgs_received

计数器

在这些流上接收的消息数量

spurious_msgs_received

计数器

接收到的意外消息数量,这些消息违反了协议

streams_closed

计数器

在任一端成功关闭的流的数量

streams_failed

计数器

流产生 gRPC 错误的次数

failure_mode_allowed

计数器

由于配置而忽略错误的次数

message_timeouts

计数器

消息在配置的超时时间内未能收到响应的次数

rejected_header_mutations

计数器

拒绝的标头修改次数

clear_route_cache_ignored

计数器

忽略的清除缓存请求的数量

clear_route_cache_disabled

计数器

被拒绝的清除缓存请求数量,这些请求被禁用