Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Monitor App Activity

Reenviar registros a un servicio

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 reenviador de registros consiste en los siguientes componentes:

  • Una acción que controla cómo y dónde aplicación Services reenvía 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.

Considere configurar un reenvío de registros si necesita realizar alguna de las siguientes acciones:

  • Almacene registros durante un período más largo que el de retención de 10 días de App Services.

  • Integre registros en un servicio de registros externo

  • Registros de acceso en Atlas Search, Online Archive y Charts

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.

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.

/log_forwarders/<name>.json
{
"name": "<name>"
}

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:

The dropdown to select which log types to forward

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

El menú desplegable para seleccionar qué estados de registro reenviar

Especifica uno o más tipos y uno o más estados para que el reexpedidor coincida y reenvíe:

/log_forwarders/<name>.json
{
"name": "<name>",
"log_types": [ "<type>", ... ],
"log_statuses": [ "<status>", ... ]
}

App Services admite el reenvío de los siguientes tipos de registros:

  • auth

  • endpoint

  • function

  • graphql

  • push

  • schema

  • service

  • sync

  • trigger

  • trigger_error_handler

App Services supports forwarding the following log statuses:

  • error

  • success

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 una aplicación de reenvío que filtra los registros sync con un estado error.

El filtro enviaría el siguiente registro:

{ "type": "sync", "status": "error", ... }

El filtro no reenviaría los siguientes registros:

{ "type": "sync", "status": "success", ... }
{ "type": "schema", "status": "error", ... }

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 supports the following batching policies:

  • 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.

Selecciones de política de procesamiento por lotes: "Sin lote" y "Procesamiento por lotes".

Para configurar el procesamiento por lotes, se debe especificar el tipo de política, ya sea single o batch, en el campo policy:

/log_forwarders/<name>.json
{
"name": "<name>",
"log_types": [ "<type>", ... ],
"log_statuses": [ "<status>", ... ],
"policy": { "type": "<single|batch>" }
}

Un despachador de logs puede almacenar automáticamente los logs en una colección vinculada de MongoDB o llamar a una función personalizada que envíe los logs a un servicio externo.

Para almacenar registros en una colección, selecciona la acción To Collection e introduce los nombres del clúster vinculado, base de datos y colección que deben guardar los registros reenviados.

The "To Collection" action with a cluster, database, and collection specified.

Para almacenar registros en una colección, se debe especificar un action de tipo collection que incluya los nombres del clúster vinculado, base de datos y colección que deben contener los registros reenviados.

/log_forwarders/<name>.json
{
"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>"
}
}

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:

/functions/<nombre de<function name> función>.js
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 reenviador de registros por nombre.

Para asignar una función a un reenviador de registros, selecciona la acción To Function y luego la función del menú desplegable.

Para asignar una función a un reexpedidor de registros, especifique un action de tipo function que incluya el nombre de la función de reexpedición de registros.

/log_forwarders/<name>.json
{
"name": "<name>",
"log_types": [ "<type>", ... ],
"log_statuses": [ "<status>", ... ],
"policy": { "type": "<single|batch>" },
"action": {
"type": "function",
"name": "<function name>"
}
}

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

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 reenviador de registros suspendido desde la pantalla Logs > Forwarding en la Interfaz de usuario Realm.

Nota

If a log forwarder is suspended, App Services sends the project owner an email alerting them of the issue.

Volver

Ver registros de aplicaciones

En esta página