Cluster Protocol Options¶
Thrift connections to upstream hosts can be configured by adding an entry to the appropriate Cluster’s extension_protocol_options keyed by envoy.filters.network.thrift_proxy. The ThriftProtocolOptions message describes the available options.
Thrift Request Metadata¶
The HEADER transport and TWITTER protocol support metadata. In particular, the Header transport supports informational key/value pairs and the Twitter protocol transmits tracing and request context data.
Twitter Protocol Metadata¶
Twitter protocol request contexts are converted into headers which are available for routing as headers. In addition, the following fields are presented as headers:
- Client Identifier
- The ClientId’s name field (nested in the RequestHeader client_id field) becomes the :client-id header.
- The RequestHeader dest field becomes the :dest header.
- Each Delegation from the RequestHeader delegations field is added as a header. The header name is the prefix :d: followed by the Delegation’s src. The value is the Delegation’s dst field.
Request metadata that is available for routing (see above) is automatically converted between wire formats when translation between downstream and upstream connections occurs. Twitter protocol request contexts, client id, destination, and delegations are therefore presented as Header transport key/value pairs, named as above. Similarly, Header transport key/value pairs are presented as Twitter protocol RequestContext values, unless they match the special names described above. For instance, a downstream Header transport request with the info key “:client-id” is translated to an upstream Twitter protocol request with a ClientId value.