Configure Target Timeout Limit in Apigee hybrid

Overview

Apigee hybrid supports targetio.timeout.millis up to 55000 milliseconds as default. SeeTarget Endpoint Transport Specification.

To increase the target timeout limit for slow target endpoints, make the following changes to your runtime configuration:

  • Configure thevirtualhosts[].requestTimeout between Istio and Message Processor(MP). Seevirtualhosts
  • Configure theconf_http_HTTPTransport.io.timeout.millis between MP and Targets
Note: For this change to be effective, you need to set both the timeouts in the runtime configuration.Caution: Apigee supports target io.timeout.millis up to 10 minutes.

You can configure these settings for individual environments or for all environments in your installation.

Configure virtualhost to change the request timeout limit

The requestTimeout is the maximum time (in seconds) set on a virtual host for a request to be processed by the MP.

To configure the request timeout limit, you can use thevirtualhosts[].requestTimeout properties. Make the following changes to youroverrides.yaml file:

  1. Add the following stanza to youroverrides.yaml file:
    virtualhosts:- name:ENV_GROUP_NAME  requestTimeout: 600   # Increase requestTimeout to 600 seconds
  2. You must upgrade one environment group (virtualhost) at a time. Specify the environment group with--set envgroup=ENV_GROUP_NAME. Repeat the following commands for each environment group mentioned in the overrides.yaml file:

    Dry run:

    helm upgradeENV_GROUP_RELEASE_NAME apigee-virtualhost/ \  --install \  --namespaceAPIGEE_NAMESPACE \  --set envgroup=ENV_GROUP_NAME \  -fOVERRIDES_FILE \  --dry-run=server

    ENV_GROUP_RELEASE_NAME is the name with which you previously installed theapigee-virtualhost chart. It is usuallyENV_GROUP_NAME.

    Upgrade the chart:

    helm upgradeENV_GROUP_RELEASE_NAME apigee-virtualhost/ \  --install \  --namespaceAPIGEE_NAMESPACE \  --set envgroup=ENV_GROUP_NAME \  -fOVERRIDES_FILE
    Note:ENV_GROUP_RELEASE_NAME must be unique within theapigee namespace.

    For example, if you have anenvironment namedprod and anenvironment group namedprod, set the value ofENV_GROUP_RELEASE_NAME to something unique, likeprod-envgroup.

  3. Check the state of the ApigeeRoute (AR).

    Installing thevirtualhosts creates ApigeeRouteConfig (ARC) which internally creates ApigeeRoute (AR) once the Apigee watcher pulls environment group-related details from the control plane. Therefore, check that the corresponding AR's state is running:

    kubectl -nAPIGEE_NAMESPACE get arc
    NAME                                STATE   AGEapigee-org1-dev-egroup                       2d
    kubectl -nAPIGEE_NAMESPACE get ar
    NAME                                        STATE     AGEapigee-org1-dev-egroup-cb9a8a                running   2d

Configure individual environments to change target timeout limit

If the proxies having slow target endpoints are in only one or a few environments in your installation, you can configure the environments individually to change the target timeout limit. This avoids adding impact to other environments.

To configure individual environments to change target timeout limit, you can use theenvs[].components.runtime properties. Make the following changes to youroverrides.yaml file:

  1. Add the following stanza to youroverrides.yaml file:
    envs:- name:ENV_NAME  components.    runtime:      cwcAppend:        conf_http_HTTPTransport.io.timeout.millis: 600000   # Increase io.timeout.millis to 600000 milliseconds
  2. You must upgrade one environment ∂at a time. Upgrade theapigee-env chart for each environment you are updating:

    Dry run:

    helm upgradeENV_RELEASE_NAME apigee-env/ \  --install \  --namespaceAPIGEE_NAMESPACE \  --set env=ENV_NAME \  -fOVERRIDES_FILE \  --dry-run=server
  3. Upgrade the chart:
    helm upgradeENV_RELEASE_NAME apigee-env/ \  --install \  --namespaceAPIGEE_NAMESPACE \  --set env=ENV_NAME \  -fOVERRIDES_FILE
  4. Verify it is up and running by checking the state of the respective env:

    kubectl -nAPIGEE_NAMESPACE get apigeeenv
    NAME                          STATE       AGE   GATEWAYTYPEmy-org-my-env-123abc          running     2d
  5. Note: If the upgrade command fails with the errorForbidden: state: releasing, the existing components are still in releasing status. You can wait for the current update to complete and then retry. Check release status with the following command:
    kubectl get env -nAPIGEE_NAMESPACE

Configure all environments to change target timeout limit

Changes to yourruntime stanza will change target timeout limit for all environments in your installation. You can override these settings for individual environments with theruntime properties.

  1. Add the following stanza to youroverrides.yaml file:
    runtime:  cwcAppend:    conf_http_HTTPTransport.io.timeout.millis: 600000   # Increase io.timeout.millis to 600000 milliseconds
  2. Upgrade theapigee-env chart for each environment in your installation:

    Dry run:

    helm upgradeENV_RELEASE_NAME apigee-env/ \  --install \  --namespaceAPIGEE_NAMESPACE \  --set env=ENV_NAME \  -fOVERRIDES_FILE \  --dry-run=server

    Upgrade the chart:

    helm upgradeENV_RELEASE_NAME apigee-env/ \  --install \  --namespaceAPIGEE_NAMESPACE \  --set env=ENV_NAME \  -fOVERRIDES_FILE

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-12-17 UTC.