Estás viendo la documentación de Apigee Edge.
Ve a la
Documentación de Apigee X. información
El registro es una de las formas eficientes de depurar problemas. La información sobre la API como encabezados, parámetros de formulario, parámetros de consulta, variables dinámicas, etc., se pueden registrar referencia posterior. La información se puede registrar de forma local en los procesadores de mensajes (solo Apigee Edge para la nube privada) o a servidores externos como Sumo Logic, Splunk o Loggly.
Antipatrón
En el siguiente código, el objeto httpClient
en una política de JavaScript se usa para registrar los datos en un
Servidor de Sumo Logic. Esto significa que el proceso de registro en realidad se lleva a cabo
el procesamiento de solicitudes y respuestas. Este enfoque es contraproducente porque aumenta el procesamiento
lo que aumenta 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();
La culpable es la llamada a waitForComplete()
, que suspende la conexión del
hasta que el proceso de registro se complete. Un patrón válido es hacer que este modelo
eliminando 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 API. para cada solicitud.
- Las solicitudes simultáneas pueden sobrecargar los recursos en el Message Processor y, en consecuencia, que afectan negativamente el procesamiento de otras solicitudes.
Práctica recomendada
- Usa la política de MessageLogging para transferir o registrar datos a servidores de registros o registros de terceros de administración de productos, 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 campo Flujo del cliente, que se ejecuta después de que la respuesta se envía de vuelta a la app cliente solicitante.
- Definir esta política en el flujo del cliente de publicaciones ayuda a separar la actividad de registro y las el procesamiento de solicitudes y respuestas, lo que evita latencias.
- Si hay un requisito o una razón específicos para realizar registros a través de JavaScript (no el
de flujo de clientes mencionada anteriormente), debe realizarse de forma asíncrona. En otras palabras,
Si usas un objeto
httpClient
, debes asegurarte de que el código JavaScript NO implementaráswaitForComplete
Lecturas adicionales
- Política JavaScript
- Política MessageLogging
- Artículo de la comunidad: ¿Es necesario usar httpClient desde el texto destacado de JavaScript?