Envoy proxy, the open source edge and service proxy designed for cloud-native applications, today announced the general availability of 1.15.0. The update includes some exciting extensions, including a Postgres filter for network observability. Tetrate’s Chris Pakulski has written a useful walk-through on how to use the Postgres filter

This latest community release includes:

  • brand new network and HTTP level filters (see more below)
  • new features in Access Loggers, HTTP dynamic forward proxy filter, External Authorization filter, Fault filter, gRRP filter, gRPC-JSON filter, Lua filter, Rate limiter, Redis filter, Router
  • support for dynamic (re-)configuration of Tracing Providers 
  • support for dumping EDS config at /config_dump?include_eds
  • and much more 

Notable enhancements to Envoy 1.15 include:

  • A new network level filter for sniffing Postgres traffic
    • The main goal of the Postgres filter is to capture runtime statistics without impacting or generating any load on the Postgres upstream server, it is transparent to it. Information decoded from Postgres frontend/backend protocol is currently used only to produce Postgres level statistics like sessions, statements or transactions executed, among others. This current version does not decode SQL queries.
  • A new network level filter for proxying RocketMQ traffic
    • RocketMQ filter proxies requests and responses between producers/consumers on one side and brokers on another. Various statistical items are collected to enhance observability.
  •  A new network level filter to support SNI based dynamic forward proxying. The implementation works just like the HTTP dynamic forward proxy, but using the value in SNI as target host instead.
  • A pair of new HTTP filters to generalize compression and decompression of request/response. When the compressor filter is enabled, request and response headers are inspected to determine whether or not the content should be compressed. The content is compressed and then sent to the client with the appropriate headers, if response and request allow. Similarly, when the decompressor filter is enabled, headers are inspected to determine whether or not the content should be decompressed. The content is decompressed and passed on to the rest of the filter chain. Note that decompression happens independently for request and responses based on the rules described below.
  • Added support for proxying CONNECT requests, terminating CONNECT requests, and converting raw TCP streams into HTTP/2 CONNECT requests. 

A complete list of 1.15 features is available on Envoy’s community release announcement page.

Additional Resources

  • Get Envoy updates on Twitter
  • Use GetEnvoy, Tetrate’s open source project that makes it easy to install and upgrade Envoy.
  • Read more about Envoy community events

Envoy is an edge and service proxy that functions as a service mesh data plane. Tetrate is a major contributor to the open source project and created GetEnvoy to make it easy to install and upgrade Envoy. 

Yaroslav Skopets, Envoy ContributorYaro Skopets is a Tetrate engineer and Envoy contributor focused on Envoy extensibility.