Skip to content

Timeouts#

Envoy Control provides a simple and fine-grained way to configure timeouts between services. Using Envoy's metadata section you can provide additional configuration to the Control Plane. The information provided in metadata.proxy_settings section is interpreted by Control Plane and it will create a corresponding configuration for Envoy. This means that Envoy Control is stateless but in the future there will be an override mechanism that uses a database to save the configuration.

An example configuration:

metadata:
  proxy_settings:
    outgoing:
      dependencies:
        - service: "*"
          timeoutPolicy:
            idleTimeout: 20s
            requestTimeout: 30s
        - service: "service-a"
          timeoutPolicy:
            idleTimeout: 40s
            requestTimeout: 50s 

In the outgoing section this configuration defines timeoutPolicy :

  • idleTimeout - The idle timeout is defined as the period in which there are no active requests.
  • requestTimeout - The amount of time that Envoy will wait for the entire request to be received.

More over we have option to indicate service-a or use * which will be default properties for all other services. Last but not least if you don't provide this configuration it will use default properties:

  • envoy-control.envoy.snapshot.egress.common-http.idle-timeout
  • envoy-control.envoy.snapshot.egress.common-http.request-timeout