Estás viendo la documentación de Apigee Edge.
Ir a la
documentación de Apigee X. info
El registro es una de las formas eficientes de depurar problemas. La información sobre la solicitud a la API, como encabezados, parámetros de formulario, parámetros de consulta, variables dinámicas, etcétera, se puede registrar para consultarla más adelante. La información se puede registrar de forma local en los procesadores de mensajes (solo Apigee Edge para nube privada) o en servidores de terceros, como Sumo Logic, Splunk o Loggly.
Antipatrón
En el siguiente código, se usa el objeto httpClient en una política de JavaScript para registrar los datos en un
servidor de Sumo Logic. Esto significa que el proceso de registro se lleva a cabo durante el procesamiento de la solicitud o respuesta. Este enfoque es contraproducente porque aumenta el tiempo de procesamiento, lo que incrementa las latencias generales.
LogData_JS:
<!-- /antipatterns/examples/1-4.xml --> <Javascript async="false" continueOnError="false" enabled="true" timelimit="2000" name="LogData_JS"> <DisplayName>LogData_JS</DisplayName> <ResourceURL>jsc://LogData.js</ResourceURL> </Javascript>
LogData.js:
<!-- /antipatterns/examples/1-5.xml --> var sumoLogicURL = "..."; httpClient.send(sumoLogicURL); waitForComplete();
El culpable aquí es la llamada a waitForComplete(), que suspende las operaciones del llamador hasta que se completa el proceso de registro. Un patrón válido es hacer que esto sea asíncrono mediante la eliminación de esta llamada.
Impacto
- La ejecución del código de registro a través de la política de JavaScript aumenta la latencia de la solicitud a la API.
- Las solicitudes simultáneas pueden sobrecargar los recursos en el Message Processor y, en consecuencia, afectar de forma negativa el procesamiento de otras solicitudes.
Práctica recomendada
- Usa la política MessageLogging para transferir o registrar datos a servidores de registro o servicios de administración de registros de terceros como Sumo Logic, Splunk, Loggly, etcétera.
- La mayor ventaja de la política de registro de mensajes es que se puede definir en el flujo posterior al cliente, que se ejecuta después de que la respuesta se envía a la app cliente solicitante.
- Tener esta política definida en el flujo posterior al cliente ayuda a separar la actividad de registro y el procesamiento de la solicitud o respuesta, lo que evita las latencias.
- Si hay un requisito o un motivo específico para realizar el registro a través de JavaScript (no la opción de flujo posterior al cliente
mencionada anteriormente), se debe hacer de forma asíncrona. En otras palabras,
si usas un objeto
httpClient, deberás asegurarte de que JavaScript NO implementewaitForComplete.