Estás viendo la documentación de Apigee Edge.
Ve a la
documentación de Apigee X. info
Síntoma
La aplicación cliente recibe un código de estado HTTP de 504
con el mensaje Gateway Timeout
como respuesta a las llamadas a la API.
El código de estado HTTP: El error 504 Gateway Timeout
indica que el cliente no recibió una respuesta oportuna de la puerta de enlace de Edge o del servidor de backend durante la ejecución de una API.
Mensajes de error
La aplicación cliente obtiene el siguiente código de respuesta:
HTTP/1.1 504 Gateway Timeout
En algunos casos, también se puede observar el siguiente mensaje de error:
{ "fault": { "faultstring": "Gateway Timeout", "detail": { "errorcode": "messaging.adaptors.http.flow.GatewayTimeout" } } }
¿Qué causa los tiempos de espera de la puerta de enlace?
La ruta de acceso típica para una solicitud a la API a través de la plataforma de Edge será Cliente -> Router -> Procesador de mensajes -> Servidor de backend, como se muestra en la siguiente figura:
La aplicación cliente, los routers y los procesadores de mensajes de la plataforma de Edge se configuran con valores de tiempo de espera adecuados. La plataforma de Edge espera que se envíe una respuesta en un período determinado para cada solicitud a la API según los valores de tiempo de espera. Si no recibes la respuesta dentro del período especificado, se muestra 504 Gateway Timeout Error
.
En la siguiente tabla, se proporcionan más detalles sobre cuándo pueden ocurrir tiempos de espera en Edge:
Ocurrencia de tiempo de espera | Detalles |
---|---|
Se produce el tiempo de espera en Message Processor |
|
Se agota el tiempo de espera en el router |
|
Se produce un tiempo de espera en la aplicación cliente |
|
Causas posibles
En Edge, las causas típicas del error 504 Gateway Timeout
son las siguientes:
Causa | Detalles | Pasos que se proporcionan para |
---|---|---|
Servidor de backend lento | El servidor de backend que procesa la solicitud a la API es demasiado lento debido a una carga alta o un rendimiento deficiente. | Usuarios de nubes públicas y privadas |
Procesamiento lento de solicitudes a la API por parte de Edge | Edge tarda mucho tiempo en procesar la solicitud a la API debido a la carga alta o el rendimiento bajo. |
Servidor de backend lento
Si el servidor de backend es muy lento o tarda mucho en procesar la solicitud a la API, recibirás un error 504 Gateway Timeout
. Como se explicó en la sección anterior, el tiempo de espera puede ocurrir en una de las siguientes situaciones:
- Se agota el tiempo de espera del Message Processor antes de que el servidor de backend responda.
- Se agota el tiempo de espera del router antes de que el servidor de backend o procesador de mensajes responda.
- La aplicación cliente se agota antes de que responda el router, el procesador de mensajes o el servidor de backend.
En las siguientes secciones, se describe cómo diagnosticar y resolver el problema en cada una de estas situaciones.
Situación 1: El procesador de mensajes se agota antes de que responda el servidor de backend
Diagnóstico
Puedes usar los siguientes procedimientos para diagnosticar si el error 504 Gateway Timeout
se produjo debido a que el servidor de backend es lento.
Procedimiento 1: Usa Trace
Si el problema sigue activo (aún se producen errores 504
), sigue los pasos que se indican a continuación:
- Haz un seguimiento de la API afectada en la IU de Edge. Espera a que se produzca el error o, si tienes la llamada a la API, realiza algunas llamadas a la API y reproduce el error
504 Gateway Timeout
. - Una vez que se produzca el error, examina la solicitud específica que muestra el código de respuesta como
504
. - Verifica el tiempo transcurrido en cada fase y toma nota de la fase a la que se dedica la mayor parte del tiempo.
- Si observas el error con el tiempo transcurrido más largo inmediatamente después de una de las siguientes fases, significa que el servidor de backend es lento o tarda mucho en procesar la solicitud:
- Se envió la solicitud al servidor de destino
- Política ServiceCallout
A continuación, se proporciona un seguimiento de muestra que muestra que el servidor de backend no respondió incluso después de 55 segundos, lo que generó un error 504 Gateway Timeout
:
En el registro anterior, el procesador de mensajes se agota después de 55,002 ms, ya que el servidor de backend no responde.
Procedimiento 2: Usa los registros de Message Processor
- Verifica el registro del Message Processor (
/opt/apigee/var/log/edge-message-processor/logs/system.log
). -
Si encuentras errores
Gateway Timeout
yonTimeoutRead
para la solicitud de proxy de API específica en el momento específico, significa que el tiempo de espera del procesador de mensajes se agotó.Registro de muestra del procesador de mensajes que muestra un error de tiempo de espera de la puerta de enlace
2015-09-29 20:16:54,340 org:myorg env:staging api:profiles rev:13 NIOThread@1 ERROR ADAPTORS.HTTP.FLOW - AbstractResponseListener.onException() : AbstractResponseListener.onError(HTTPResponse@4d898cf1, Gateway Timeout) 2015-09-29 20:16:57,361 org:myorg env:staging api:profileNewsletters rev:8 NIOThread@0 ERROR HTTP.CLIENT - HTTPClient$Context$3.onTimeout() : SSLClientChannel[C:XX.XX.XX.XX:443 Remote host:192.168.38.54:38302]@120171 useCount=2 bytesRead=0 bytesWritten=824 age=55458ms lastIO=55000ms .onTimeoutRead
En el registro anterior del procesador de mensajes, observas que el servidor de backend indicado con la dirección IP XX.XX.XX.XX no respondió incluso después de 55 segundos (lastIO=55000ms). Como resultado, el Message Processor agotó el tiempo de espera y envió el error
504 Gateway Timeout
.Consulta este artículo: ¿Cómo se controla el tiempo de espera en el procesador de mensajes?
- Cómo se controla el tiempo de espera en el procesador de mensajes Los procesadores de mensajes generalmente se configuran con un valor de tiempo de espera predeterminado de 55 segundos) a través de la propiedad
HTTPTransport.io.timeout.millis
. Este valor de tiempo de espera se aplica a todos los proxies de API que pertenecen a una organización que entrega este Message Processor.- Si el servidor de backend no responde en 55 segundos, el procesador de mensajes se agota y envía un error
504 Gateway Timeout
al cliente.
- Si el servidor de backend no responde en 55 segundos, el procesador de mensajes se agota y envía un error
- El valor de tiempo de espera especificado en el procesador de mensajes se puede
anular con la propiedad
io.timeout.millis
especificada en el proxy de API. Este valor de tiempo de espera se aplica a un proxy de API específico en el que se especifica la propiedad mencionada anteriormente. Por ejemplo, si elio.timeout.millis
se establece en 10 segundos dentro del proxy de API, se usará el valor de tiempo de espera de 10 segundos para este proxy de API específico.- Si el servidor de backend no responde en un plazo de 10 segundos para el proxy de API específico, el procesador de mensajes se agota y envía un error
504 Gateway Timeout
al cliente.
- Si el servidor de backend no responde en un plazo de 10 segundos para el proxy de API específico, el procesador de mensajes se agota y envía un error
- Cómo se controla el tiempo de espera en el procesador de mensajes Los procesadores de mensajes generalmente se configuran con un valor de tiempo de espera predeterminado de 55 segundos) a través de la propiedad
Solución
- Verifica por qué el servidor de backend tarda más de 55 segundos y comprueba si se puede corregir o optimizar para que responda más rápido.
- Si no es posible corregir o optimizar el servidor de backend, o si se sabe que el servidor de backend tarda más tiempo que el tiempo de espera configurado, aumenta el valor del tiempo de espera en el router y el procesador de mensajes a un valor adecuado.
Situación #2: El router se agota antes de que el procesador de mensajes o el servidor de backend respondan
Es posible que recibas errores 504 Gateway Timeout
si el router se agota antes de que responda el procesador de mensajes o el servidor de backend. Esto puede ocurrir en una de las siguientes circunstancias:
- El valor de tiempo de espera establecido en el router es más corto que el valor de tiempo de espera establecido en el procesador de mensajes. Por ejemplo, supongamos que el tiempo de espera del router es de 50 segundos, mientras que el del procesador de mensajes es de 55 segundos.
Tiempo de espera en el router Se agotó el tiempo de espera en Message Processor 50 segundos 55 segundos - El valor de tiempo de espera del procesador de mensajes se anula con un valor de tiempo de espera más alto mediante la propiedad
io.timeout.millis
establecida en la configuración del extremo de destino del proxy de API:Por ejemplo, si se establecen los siguientes valores de tiempo de espera:
Tiempo de espera en el router Se agotó el tiempo de espera en Message Processor Tiempo de espera dentro del proxy de API 57 segundos 55 segundos 120 segundos Sin embargo, el
io.timeout.millis
se establece en 120 segundos en el proxy de API:<HTTPTargetConnection> <Properties> <Property name="io.timeout.millis">120000</Property> </Properties> <URL>http://www.apigee.com</URL> </HTTPTargetConnection>
Luego, el procesador de mensajes no se agotará después de 55 segundos, aunque su valor de tiempo de espera (55 segundos) sea inferior al valor de tiempo de espera del router (57 segundos). Esto se debe a que el valor de tiempo de espera de 55 segundos en el procesador de mensajes se anula por el valor de 120 segundos que se establece en el proxy de API. Por lo tanto, el valor del tiempo de espera del Message Processor para este proxy de API específico será de 120 segundos.
Dado que el router tiene un valor de tiempo de espera más bajo (57 segundos) en comparación con los 120 segundos configurados en el proxy de API, se agotará el tiempo de espera del router si el servidor de backend no responde después de 57 segundos.
Diagnóstico
- Verifica el registro de acceso de NGINX (
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
). -
Si se agota el tiempo de espera del router antes que el Message Processor, verás el estado de
504
en los registros de acceso de NGINX para la solicitud a la API específica, y elmessage id
del Message Processor se configurará como-
. Esto se debe a que el router no recibió ninguna respuesta del procesador de mensajes dentro del tiempo de espera establecido en el router.Ejemplo de entrada de registro de NGINX que muestra un error 504 debido a que el router agotó el tiempo de espera
- En el ejemplo anterior, observa el estado de
504
en NGINX, el ID de mensaje del procesador de mensajes es-
y el tiempo transcurrido total es de 57.001 segundos. Esto se debe a que el router agotó el tiempo de espera después de 57.001 segundos y no recibimos ninguna respuesta del procesador de mensajes. - En este caso, verás excepciones
Broken Pipe
en los registros del Message Processor (/opt/apigee/var/log/edge-message-processor/logs/system.log).
).2017-06-09 00:00:25,886 org:myorg env:test api:myapi-v1 rev:23 messageid:rrt-mp01-18869-23151-1 NIOThread@1 INFO HTTP.SERVICE - ExceptionHandler.handleException() : Exception java.io.IOException: Broken pipe occurred while writing to channel ClientOutputChannel(ClientChannel[A:XX.XX.XX.XX:8998 Remote host:YY.YY.YY.YY:51400]@23751 useCount=1 bytesRead=0 bytesWritten=486 age=330465ms lastIO=0ms ) 2017-06-09 00:00:25,887 org:myorg env:test api:myapi-v1 rev:23 messageid:rrt-mp01-18869-23151-1 NIOThread@1 INFO HTTP.SERVICE - ExceptionHandler.handleException() : Exception trace: java.io.IOException: Broken pipe at com.apigee.nio.channels.ClientOutputChannel.writePending(ClientOutputChannel.java:51) ~[nio-1.0.0.jar:na] at com.apigee.nio.channels.OutputChannel.onWrite(OutputChannel.java:116) ~[nio-1.0.0.jar:na] at com.apigee.nio.channels.OutputChannel.write(OutputChannel.java:81) ~[nio-1.0.0.jar:na] … <snipped>
Este error se muestra porque, una vez que se agota el tiempo de espera del router, cierra la conexión con el procesador de mensajes. Cuando el procesador de mensajes completa su procesamiento, intenta escribir la respuesta en el router. Como la conexión al router ya está cerrada, obtienes el Broken Pipe exception
en el procesador de mensajes.
Se espera que se vea esta excepción en las circunstancias explicadas anteriormente. Por lo tanto, la causa real del error 504 Gateway Timeout
sigue siendo que el servidor de backend tarda más tiempo en responder, y debes abordar ese problema.
Solución
- Si es un servidor de backend personalizado, ocurrirá lo siguiente:
- Verifica por qué el servidor de backend tarda mucho tiempo en responder y observa si se puede corregir, optimizar para responder más rápido.
- Si no es posible optimizar ni corregir el servidor de backend o es un hecho conocido que este tarda mucho tiempo, aumenta el valor de tiempo de espera del router y el procesador de mensajes.
Idea: Configura el valor de tiempo de espera en los diferentes componentes en el siguiente orden:
Tiempo de espera en el cliente > Tiempo de espera en el router > Tiempo de espera en el procesador de mensajes > Tiempo de espera en el proxy de API
- Si es un servidor de backend de NodeJS, haz lo siguiente:
- Verifica si el código de NodeJS realiza llamadas a otros servidores de backend y si tarda mucho en mostrar una respuesta. Verifica por qué los servidores de backend tardan más tiempo y corrige el problema según corresponda.
- Verifica si los procesadores de mensajes tienen un uso alto de CPU o memoria:
- Si algún procesador de mensajes tiene un uso elevado de la CPU, genera tres
volcados de subprocesos cada 30 segundos con el siguiente comando:
JAVA_HOME/bin/jstack -l PID > FILENAME
- Si algún procesador de mensajes tiene un uso elevado de memoria, genera un volcado de montón con el siguiente comando:
sudo -u apigee JAVA_HOME/bin/jmap -dump:live,format=b,file=FILENAME PID
. - Reinicia el procesador de mensajes con el siguiente comando. Debe reducir la CPU y la memoria:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Supervisa las llamadas a la API para confirmar si el problema persiste.
- Comunícate con el equipo de asistencia de Apigee Edge y proporciona los volcados de subprocesos, el volcado de montón y los registros de Message Processor (
/opt/apigee/var/log/edge-message-processor/logs/system.log)
para ayudar a investigar la causa del alto uso de CPU o memoria).
- Si algún procesador de mensajes tiene un uso elevado de la CPU, genera tres
volcados de subprocesos cada 30 segundos con el siguiente comando:
Verifica lo siguiente: Cómo se controla el tiempo de espera de los servidores de backend de NodeJS en Message Processor
|
Situación 3: Se agota el tiempo de espera de la aplicación cliente antes de que responda el router, el procesador de mensajes o el servidor de backend
Es posible que recibas errores 504 Gateway Timeout
si la aplicación cliente se agota antes de que el servidor de backend responda. Esta situación puede ocurrir en los siguientes casos:
- El valor de tiempo de espera establecido en la aplicación cliente es menor que el valor de tiempo de espera establecido en el router y el procesador de mensajes:
Por ejemplo, si se establecen los siguientes valores de tiempo de espera:
Tiempo de espera en el cliente Tiempo de espera en el router Se agotó el tiempo de espera en Message Processor 50 segundos 57 segundos 55 segundos En este caso, el tiempo total disponible para obtener una respuesta a una solicitud a la API a través de Edge es inferior o igual a 50 segundos. Esto incluye el tiempo que se tarda en realizar una solicitud a la API, la solicitud que procesa Edge (router, procesador de mensajes), la solicitud que se envía al servidor de backend (si corresponde), el backend que procesa la solicitud y envía la respuesta, Edge que procesa la respuesta y, por último, la envía al cliente.
Si el router no responde al cliente en un plazo de 50 segundos, el cliente se agotará y cerrará la conexión con el router. El cliente recibirá el código de respuesta
504
.Esto hará que NGINX establezca un código de estado de
499
que indique que el cliente cerró la conexión.
Diagnóstico
- Si se agota el tiempo de espera de la aplicación cliente antes de recibir una respuesta del router, se cerrará la conexión con este. En esta situación, verás un código de estado de 499 en los registros de acceso de NGINX para la solicitud específica a la API.
Ejemplo de entrada de registro de NGINX que muestra el código de estado 499
- En el ejemplo anterior, ten en cuenta que el estado de
499
en NGINX y el tiempo total transcurrido es de 50.001 segundos. Esto indica que se agotó el tiempo de espera del cliente después de 50.001 segundos. - En este caso, verás excepciones
Broken Pipe
en los registros del Message Processor (/opt/apigee/var/log/edge-message-processor/logs/system.log).
2017-06-09 00:00:25,886 org:myorg env:test api:myapi-v1 rev:23 messageid:rrt-1-11193-11467656-1 NIOThread@1 INFO HTTP.SERVICE - ExceptionHandler.handleException() : Exception java.io.IOException: Broken pipe occurred while writing to channel ClientOutputChannel(ClientChannel[A:XX.XX.XX.XX:8998 Remote host:YY.YY.YY.YY:51400]@23751 useCount=1 bytesRead=0 bytesWritten=486 age=330465ms lastIO=0ms ) 2017-06-09 00:00:25,887 org:myorg env:test api:myapi-v1 rev:23 messageid:rrt-1-11193-11467656-1 NIOThread@1 INFO HTTP.SERVICE - ExceptionHandler.handleException() : Exception trace: java.io.IOException: Broken pipe at com.apigee.nio.channels.ClientOutputChannel.writePending(ClientOutputChannel.java:51) ~[nio-1.0.0.jar:na] at com.apigee.nio.channels.OutputChannel.onWrite(OutputChannel.java:116) ~[nio-1.0.0.jar:na] at com.apigee.nio.channels.OutputChannel.write(OutputChannel.java:81) ~[nio-1.0.0.jar:na] … <snipped>
- Después de que se agote el tiempo de espera del router, se cerrará la conexión con el procesador de mensajes. Cuando el procesador de mensajes completa su procesamiento, intenta escribir la respuesta en el router.
Como la conexión al router ya está cerrada, obtienes el
Broken Pipe exception
en el procesador de mensajes. - Se espera esta excepción en las circunstancias explicadas anteriormente. Por lo tanto, la causa real del error
504 Gateway Timeout
sigue siendo que el servidor de backend tarda mucho en responder y debes abordar ese problema.
Solución
- Si es tu servidor de backend personalizado, haz lo siguiente:
- Verifica el servidor de backend para determinar por qué tarda más de 57 segundos y comprueba si se puede corregir o optimizar para que responda más rápido.
- Si no es posible corregir o optimizar el servidor de backend, o si sabes que este tardará mucho tiempo, aumenta el valor del tiempo de espera en el router y el procesador de mensajes.
Idea: Configura el valor de tiempo de espera en los diferentes componentes en el siguiente orden:
Tiempo de espera en el cliente > Tiempo de espera en el router > Tiempo de espera en el procesador de mensajes > Tiempo de espera en el proxy de API
- Si es un backend de NodeJS, haz lo siguiente:
- Verifica si el código NodeJS realiza llamadas a algún otro servidor de backend y si eso tarda mucho tiempo en devolverse. Verifica por qué esos servidores de backend tardan más tiempo.
- Comprueba si los procesadores de mensajes tienen un alto uso de CPU o memoria:
- Si un procesador de mensajes usa una gran cantidad de CPU, genera tres volcados de subprocesos cada 30 segundos con el siguiente comando:
JAVA_HOME/bin/jstack -l PID > FILENAME
- Si un procesador de mensajes tiene un uso de memoria alto, genera un
volcado de montón
con el siguiente comando:
sudo -u apigee JAVA_HOME/bin/jmap -dump:live,format=b,file=FILENAME PID
- Reinicia el procesador de mensajes con el siguiente comando. Esto debería reducir la CPU y la memoria:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Supervisa las llamadas a la API para confirmar si el problema persiste.
- Comunícate con el equipo de asistencia de Apigee Edge y proporciona los volcados de subprocesos, el volcado de montón y los registros de Message Processor (
/opt/apigee/var/log/edge-message-processor/logs/system.log)
para ayudarlos a investigar la causa del alto uso de CPU o memoria).
- Si un procesador de mensajes usa una gran cantidad de CPU, genera tres volcados de subprocesos cada 30 segundos con el siguiente comando:
Aumenta el valor de tiempo de espera en el router y el procesador de mensajes.
Elige los valores de tiempo de espera que se establecerán en el router y el procesador de mensajes con cuidado según tus requisitos. No configures valores de tiempo de espera arbitrariamente grandes. Si necesitas asistencia, comunícate con el equipo de asistencia de Apigee Edge.
Router
chown apigee:apigee /opt/apigee/customer/application/router.properties
- Crea el archivo
/opt/apigee/customer/application/router.properties
en la máquina del router, si aún no existe. - Agrega la siguiente línea a este archivo:
conf_load_balancing_load.balancing.driver.proxy.read.timeout=TIME_IN_SECONDS
Por ejemplo, si deseas establecer el valor del tiempo de espera en 120 segundos, configúralo de la siguiente manera:
conf_load_balancing_load.balancing.driver.proxy.read.timeout=120
- Asegúrate de que apigee sea el propietario de este archivo:
- Reinicia el router:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- Si tienes más de un router, repite los pasos anteriores en todos ellos.
Message Processor
- Crea el archivo
/opt/apigee/customer/application/message-processor.properties
en la máquina del procesador de mensajes si aún no existe. - Agrega la siguiente línea a este archivo:
conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS
Por ejemplo, si deseas establecer el valor del tiempo de espera en 120 segundos, configúralo de la siguiente manera:
conf_http_HTTPTransport.io.timeout.millis=120000
- Asegúrate de que el propietario de este archivo sea apigee:
chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Reinicia el procesador de mensajes:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Si tienes más de un Message Processor, repite los pasos anteriores en todos los Message Processors.
Idea: Establece el valor del tiempo de espera en los diferentes componentes en el siguiente orden:Tiempo de espera en el cliente > Tiempo de espera en el router > Tiempo de espera en el procesador de mensajes > Tiempo de espera en el proxy de API |
Procesamiento lento de solicitudes a la API por Edge
Si Edge es muy lento o tarda mucho en procesar la solicitud a la API, recibirás un error 504 Gateway Timeout
.
Diagnóstico
- Haz un seguimiento de la API afectada en la IU de Edge.
- Espera a que se produzca el error o, si tienes la llamada a la API, realiza algunas llamadas a la API y reproduce el error
504 Gateway Timeout
. - Ten en cuenta que, en este caso, es posible que veas una respuesta correcta en el seguimiento.
- Se agota el tiempo de espera del router o cliente, ya que el procesador de mensajes no responde dentro del tiempo de espera especificado en el router o el cliente (el que tenga el período de tiempo de espera más bajo). Sin embargo, el procesador de mensajes continúa procesando la solicitud y es posible que se complete correctamente.
- Además, el valor
HTTPTransport.io.timeout.millis
establecido en Message Processor se activa solo si este se comunica con un servidor de backend HTTP/HTTPS. En otras palabras, este tiempo de espera no se activará cuando alguna política (que no sea la política Service conformidad) dentro del proxy de API tarde mucho tiempo.
- Después de que se produzca el error, examina la solicitud específica que tenga el tiempo transcurrido más largo.
- Verifica el tiempo transcurrido en cada fase y anota la fase en la que se pasa más tiempo.
- Si observas el tiempo transcurrido más largo en cualquiera de las políticas que no sean la política de texto destacado de servicio, eso indica que Edge está tardando mucho tiempo en procesar la solicitud.
- Este es un ejemplo de seguimiento de la IU en el que se muestra el tiempo transcurrido muy alto en la política de JavaScript:
- En el ejemplo anterior, observas que la política de JavaScript tarda un tiempo anormalmente largo de aproximadamente 245 segundos.
Solución
- Verifica si la política tardó mucho tiempo en responder y si hay algún código personalizado que pueda tardar mucho tiempo en procesarse. Si hay algún código de este tipo, comprueba si puedes corregirlo o optimizarlo.
- Si no hay un código personalizado que pueda causar un tiempo de procesamiento alto, verifica si los procesadores de mensajes tienen un uso elevado de CPU o memoria:
- Si algún procesador de mensajes tiene un uso elevado de la CPU, genera tres volcados de subprocesos cada 30 segundos con el siguiente comando:
JAVA_HOME/bin/jstack -l PID > FILENAME
- Si algún procesador de mensajes tiene un uso elevado de memoria, genera un volcado de montón con el siguiente comando:
sudo -u apigee JAVA_HOME/bin/jmap -dump:live,format=b,file=FILENAME PID
. - Usa el siguiente comando para reiniciar el Message Processor. Esto debería reducir la CPU y la memoria.
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Supervisa las llamadas a la API y confirma si el problema persiste.
- Comunícate con el equipo de Asistencia de Apigee Edge y proporciona los volcados de subprocesos, el volcado de montón y los registros de Message Processor (
/opt/apigee/var/log/edge-message-processor/logs/system.log)
para ayudarlos a investigar la causa del alto uso de CPU o memoria.
- Si algún procesador de mensajes tiene un uso elevado de la CPU, genera tres volcados de subprocesos cada 30 segundos con el siguiente comando:
Diagnostica problemas con la supervisión de API
La supervisión de API te permite aislar las áreas problemáticas con rapidez para diagnosticar problemas de errores, rendimiento y latencia, y su fuente, como apps para desarrolladores, proxies de API, destinos de backend o la plataforma de API.
Revisa una situación de ejemplo en la que se muestra cómo solucionar problemas de 5xx con tus APIs mediante el monitoreo de APIs. Por ejemplo, es posible que desees configurar una alerta para recibir una notificación cuando la cantidad de códigos de estado 504 supere un umbral determinado.