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
/ /

Reenviar registros a un servicio

Puede configurar un reenvío de registros para que almacene automáticamente los registros del servidor de sus activadores y Funciones en una colección de MongoDB o los envíe a un servicio externo. También puede reenviar registros individualmente a medida que se crean o agruparlos para reducir la sobrecarga.

Un reenviador de registros consiste en los siguientes componentes:

  • Una acción que controla cómo y dónde se reenvían los registros.

  • Un filtro que controla qué registros se reenvían.

  • Una política que controla si los registros se reenvían de forma individual o en lotes.

Considera configurar un reenviador de registros si necesitas realizar alguna de las siguientes acciones:

  • Almacene los registros durante más tiempo que el periodo de retención de 10 días.

  • Integra registros en un servicio externo de registro.

  • Registros de acceso en MongoDB Search, Online Archive y Charts.

1

Para crear un reenvío de registros:

En Atlas, ve a Triggers página.

  1. Si aún no aparece, se debe seleccionar la organización que contiene el proyecto en el menú Organizations de la barra de navegación.

  2. Si aún no se muestra, seleccione su proyecto en el menú Projects de la barra de navegación.

  3. En la barra lateral, haz clic en Triggers en la sección Streaming Data.

La Se muestra la página Disparadores.

  1. Haga clic en el botón View All Apps.

  2. Haz clic en la aplicación que contiene el activador o función cuyos registros deseas reenviar.

  3. Navega a la página Logs.

  4. Selecciona la pestaña Forwarding.

  5. Haga clic en el botón Create a Log Forwarder.

  6. Especifique un nombre único para su 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>"
}
2

Puedes reenviar todos tus registros de activador o función o enviar solo un subconjunto a la colección objetivo o servicio. Controlas este subconjunto para cada reenviador de registros definiendo filtros para el tipo de registro (por ejemplo, funciones, triggers, etc.) y estado (es decir. éxito o error) que invoque la acción del reenviador.

Elija uno o más tipos de registro para reenviar en el menú desplegable Log Type. Luego, eligir uno o más estados para reenviar en el menú desplegable Log Status.

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>", ... ]
}

Puedes reenviar los siguientes tipos de registro:

  • auth

  • endpoint

  • function

  • graphql

  • push

  • schema

  • service

  • trigger

  • trigger_error_handler

Puedes reenviar los siguientes estados de registro:

  • error

  • success

Importante

Un reenvío de registros solo reenvía 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 triggers con un estado error.

El filtro enviaría el siguiente registro:

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

El filtro no reenviaría los siguientes registros:

{ "type": "triggers", "status": "success", ... }
{ "type": "functions", "status": "error", ... }
3

Puede combinar varios registros en una sola solicitud por lotes para reducir la sobrecarga. La política de procesamiento por lotes que seleccione determinará cómo un reenviador de registros agrupa los registros.

Puedes elegir entre las siguientes políticas de agrupación:

  • Sin procesamiento por lotes: El reenviador de registros reenvía los registros individualmente a medida que ocurren sus solicitudes correspondientes.

  • Lote: El reenviador de registros agrupa los documentos en un lote a medida que ocurren. Cada lote puede incluir hasta 100 entradas de registro. Cuando un lote está lleno, el reenviador de registros reenvía todo el lote en una sola solicitud. El reenviador de registros 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, 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>" }
}
4

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.

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, escribe una función que acepte un arreglo de objetos de registro y llame al servicio a través de una API, SDK o biblioteca.

Nota

Dependiendo de su política de procesamiento por lotes y la frecuencia de registro, el capturador de registros puede llamar a una función de reenvío de registros con un arreglo de hasta 100 objetos de registro.

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
});
}

Después de que escribas la función de reenvío de registros, puedes 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>"
}
}
5

Después de configurar el reenvío de registros, haga clic en Save. Si tiene habilitados los borradores de implementación, asegúrese de implementar los cambios.

Después de configurar el reenviador de registros, guarda el archivo de configuración y luego carga la configuración de la aplicación actualizada:

appservices push

Un despachador de registros podría suspenderse como respuesta a un evento que le impida continuar, como una interrupción de red o un cambio en el clúster subyacente que almacena los registros. Una vez suspendido, un despachador no puede ser invocado y no reenvía ningún registro.

Puedes reiniciar un reenviador de registros suspendido desde la pantalla Logs > Forwarding de la Interfaz de Usuario de Atlas.

Nota

Si un reenviador de registros está suspendido, se enviará un correo electrónico al propietario del proyecto para notificarle sobre el problema.

Volver

Registros

En esta página