Timeouts
EnRoute Technical Reference
EnRoute timeout options allow accurately controlling different timeouts involved in traffic routing.
Timeouts can be specified at the Route level, both for GatewayHost
and ServiceRoute
Through a TimeoutPolicy specified in Route, several different types of Timeouts can be configured
Request Timeout
This timeout can be used to specify the upstream timeout for the route. This spans between the point at which the entire downstream request (i.e. end-of-stream) has been processed and when the upstream response has been completely processed. A value of 0 will disable the route’s timeout.
Idle Timeout
Specifies the idle timeout for the route. If not specified, there is no per-route idle timeout. A value of 0 will completely disable the route’s idle timeout
The idle timeout determines the amount of time the request’s stream may be idle.
Cluster Idle Timeout
The idle timeout for connections going through to the service. The idle timeout is defined as the period in which there are no active requests. When the idle timeout is reached the connection will be closed.
To disable idle timeouts explicitly set this to 0.
Cluster Connect Timeout
The timeout for new network connections to hosts. If not set, a default value of 5s will be used
Cluster Max Connection Duration
The maximum duration of a connection. The duration is defined as a period since a connection was established. If not set, there is no max duration. When max_connection_duration is reached and if there are no active streams, the connection will be closed.
Example
Here is an example that sets timeouts for a Route in GatewayHost
. Timeouts for a Route in ServiceRoute
can be set the same way
apiVersion: enroute.saaras.io/v1
kind: GatewayHost
labels:
app: httpbin
name: httpbin-9000-gatewayhost-httpbin-host
namespace: httpbin
spec:
routes:
- conditions:
- prefix: /get
services:
- name: httpbin
port: 9000
timeoutPolicy:
cluster_connect: 10s
cluster_idle: 64s
cluster_max_duration: 1024s
idle: 64s
request: 32s
virtualhost:
fqdn: '*'