About timeouts

A timeout is the amount of time (duration) that the gateway waits for replies from a backend service before the service is considered unavailable. This setting can be useful to prevent your apps from hanging or to fail if no response is returned in a specific timeframe. With timeouts, calls either succeed or fail within a predictable timeframe.

The time an app needs to process a request can vary a lot. For this reason, applying the same timeout across services can cause a variety of issues. For example, a timeout that is too long can result in excessive latency from waiting for replies from failing services. On the other hand, a timeout that is too short can result in calls failing unnecessarily while waiting for an operation that needs responses from multiple services. Set app-specific timeouts instead of a single timeout.

Configuration options

You can configure different types of timeouts by using a Kubernetes Gateway API-native configuration or an AgentgatewayPolicy as shown in the following table.

Type of timeout Description Configured via Attach to
Request timeout Request timeouts configure the time the proxy allows for the entire request stream to be received from the client.
  • HTTPRoute
  • AgentgatewayPolicy
  • HTTPRoute
  • HTTPRoute rule
  • Gateway listener (AgentgatewayPolicy only)
Idle timeout An idle timeout is the time when the proxy terminates the connection to a downstream or upstream service if there are no active streams.
  • AgentgatewayPolicy
  • Gateway listener
Per-try timeout Set a shorter timeout for retries than the overall request timeout.
  • HTTPRoute
  • AgentgatewayPolicy
  • HTTPRoute
  • HTTPRoute rule
  • Gateway listener (AgentgatewayPolicy only)
Agentgateway assistant

Ask me anything about agentgateway configuration, features, or usage.

Note: AI-generated content might contain errors; please verify and test all returned information.

↑↓ navigate select esc dismiss

What could be improved?