Overview
Puede configurar un reenvío de registros para almacenar automáticamente los registros del servidor de su aplicación en una colección de MongoDB o enviarlos a un servicio externo. Atlas App Services puede reenviar los registros individualmente a medida que se crean o agruparlos por lotes para reducir la sobrecarga.
Un reenvío de registros consta de los siguientes componentes:
Una acción que controla cómo y dónde App Services reenvía los registros.
Un filtro que controla qué registros reenvía App Services.
Una política que controla si App Services agrupa los registros o los reenvía individualmente.
¿Por qué debería configurar el reenvío de registros?
Considere configurar un reenvío de registros si necesita realizar alguna de las siguientes acciones:
Almacenar registros durante un período más largo que el de retención de App Services, que es de 10 días.
Integrar registros en un servicio de registro externo
Registros de acceso en Atlas Search, Online Archive y Charts
¿Cómo se factura el reenvío de registros?
Cada invocación de acción de reenvío de registro (ya sea en un registro individual o en un lote) se factura como una solicitud de App Services.
Configurar un reenvío de registros
1. Crear un reenvío de registros
Para crear un nuevo reenvío de registros, navegue hasta la Logs y seleccione la pestaña Forwarding. Luego, haga clic en el botón Create a Log Forwarder.
En la siguiente pantalla, especifique un nombre único para el reenvío de registros.
Para crear un nuevo reenvío de registros, agregue un nuevo archivo de configuración al
log_forwarders Directorio de tu aplicación. El nombre del archivo debe coincidir con el valor del campo name de la configuración.
{ "name": "<name>" }
2. Elija qué registros reenviar
Los Servicios de Aplicaciones pueden reenviar todos los registros de tu aplicación o enviar solo un subconjunto a la colección o servicio de destino. Puedes controlar este subconjunto para cada reenviador de registros definiendo filtros para el tipo de registro (p. ej., funciones, sincronización, etc.) y el estado (p. ej., éxito o error) que invocan la acción del reenviador.
Elija uno o más tipos de registro para reenviar en el menú desplegable Log Type:

Elija uno o más estados para reenviar en el menú desplegable Log Status:

Especifique uno o más tipos y uno o más estados para que el reenvío coincida y reenvíe:
{ "name": "<name>", "log_types": [ "<type>", ... ], "log_statuses": [ "<status>", ... ] }
App Services admite el reenvío de los siguientes tipos de registros:
authendpointfunctiongraphqlpushschemaservicesynctriggertrigger_error_handler
App Services admite el reenvío de los siguientes estados de registro:
errorsuccess
Importante
Los servicios de aplicación solo reenvían un registro determinado si tanto su tipo como su estado están especificados en el filtro.
Por ejemplo, considere un reenvío que filtra sync registros con un estado error.
El filtro reenviaría el siguiente registro:
{ "type": "sync", "status": "error", ... }
El filtro no reenviaría los siguientes registros:
{ "type": "sync", "status": "success", ... } { "type": "schema", "status": "error", ... }
3. Configurar el procesamiento por lotes de registros
App Services puede combinar varios registros en una sola solicitud por lotes para reducir la sobrecarga. La forma en que App Services agrupa los registros en lotes se controla mediante una política de procesamiento por lotes.
App Services admite las siguientes políticas de procesamiento por lotes:
Sin procesamiento por lotes: App Services reenvía los registros individualmente a medida que se producen las solicitudes correspondientes.
Procesamiento por lotes: El reenvío agrupa los documentos en un lote a medida que se generan. Cada lote puede incluir hasta 100 entradas de registro. Cuando un lote está lleno, App Services lo reenvía en una sola solicitud. App Services reenvía los registros al menos una vez por minuto, independientemente de la cantidad de registros en el lote actual.
Para configurar el procesamiento por lotes, seleccione la política No batch o Batching.

Para configurar el procesamiento por lotes, especifique el tipo de política, single o batch, en el campo policy:
{ "name": "<name>", "log_types": [ "<type>", ... ], "log_statuses": [ "<status>", ... ], "policy": { "type": "<single|batch>" } }
5. Definir una acción
Un reenvío de registros puede almacenar automáticamente registros en una colección MongoDB vinculada o llamar a una función personalizada que envía los registros a un servicio externo.
Almacenar registros en una colección de MongoDB
Para almacenar registros en una colección, seleccione la acción To Collection e ingrese los nombres del clúster, la base de datos y la colección vinculados que deben contener los registros reenviados.

Para almacenar registros en una colección, especifique un action de tipo collection que incluya los nombres del clúster, la base de datos y la colección vinculados que deben contener los registros reenviados.
{ "name": "<name>", "log_types": [ "<type>", ... ], "log_statuses": [ "<status>", ... ], "policy": { "type": "<single|batch>" }, "action": { "type": "collection", "data_source": "<data source name>", "database": "<database name>", "collection": "<collection name>" } }
Reenviar registros con una función personalizada
Para reenviar registros a un servicio externo, escriba una función que acepte una matriz de objetos de registro y llame al servicio a través de una API, un SDK o una biblioteca.
Nota
Dependiendo de tu política de procesamiento por lotes y la frecuencia de los registros, App Services puede llamar a una función de reenvío de registros con un arreglo de hasta 100 objetos de registros.
La función debe tener la misma firma que el siguiente ejemplo:
exports = async function(logs) { // `logs` is an array of 1-100 log objects // Use an API or library to send the logs to another service. await context.http.post({ url: "https://api.example.com/logs", body: logs, encodeBodyAsJSON: true }); }
Una vez que haya escrito la función de reenvío de registros, puede asignarla a un reenvío de registros por nombre.
Para asignar una función a un reenvío de registros, seleccione la acción To Function y luego seleccione la función en la entrada desplegable.
Para asignar una función a un reenvío de registros, especifique un action de tipo function que incluya el nombre de la función de reenvío de registros.
{ "name": "<name>", "log_types": [ "<type>", ... ], "log_statuses": [ "<status>", ... ], "policy": { "type": "<single|batch>" }, "action": { "type": "function", "name": "<function name>" } }
6. Guarde e implemente sus cambios
Una vez configurado el reenvío de registros, haga clic en Save. Si tiene habilitados los borradores de implementación, asegúrese de implementar los cambios.
Una vez que hayas configurado el redireccionador de registros, guarda el archivo de configuración y luego envía la configuración actualizada de tu aplicación:
appservices push
Reiniciar un reenvío de registros suspendido
Un reenvío de registros puede suspenderse ante un evento que le impida continuar, como una interrupción de la red o un cambio en el clúster subyacente que almacena los registros. Una vez suspendido, no se puede invocar un reenvío y no reenvía ningún registro.
Puede reiniciar un reenvío de registros suspendido desde la pantalla Logs > Forwarding de la interfaz de usuario de servicios de aplicaciones.
Nota
Si se suspende un reenvío de registros, App Services envía un correo electrónico al propietario del proyecto para alertarlo sobre el problema.