Docs Menu
Docs Home
/ /

Reenviar registros a un servicio

Puedes configurar un reenvío de registros para almacenar automáticamente los registros de disparadores y funciones del servidor en una colección de MongoDB o enviarlos a un servicio externo. También puedes 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 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 individualmente o en lotes.

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

  • Almacenar registros durante un período de retención superior al 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, vaya a la 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.

El Se muestra la páginade activadores.

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

  2. Haga clic en la aplicación que contiene el disparador o la función cuyos registros desea reenviar.

  3. Navega a la página Logs.

  4. Seleccione 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.

Seleccione uno o más tipos de registro para reenviar en el menú desplegable Log Type. Luego, seleccione 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:

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

Puede reenviar los siguientes tipos de registros:

  • auth

  • endpoint

  • function

  • graphql

  • push

  • schema

  • service

  • trigger

  • trigger_error_handler

Puede 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 un reenvío que filtra triggers registros con un estado error.

El filtro reenviarí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.

Puede elegir entre las siguientes políticas de procesamiento por lotes:

  • Sin procesamiento por lotes: el reenvío de registros reenvía los registros individualmente a medida que se producen las solicitudes correspondientes.

  • Procesamiento por lotes: El reenvío de registros 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, el reenvío lo reenvía en una sola solicitud. El reenvío reenvía los registros al menos una vez por minuto, independientemente del número 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:

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

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.

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.

/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, SDK o biblioteca.

Nota

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

La función debe tener la misma firma que el siguiente ejemplo:

/funciones/<nombre de la<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 escribir 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.

/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 reenvío de registros, guarde el archivo de configuración y luego envíe la configuración actualizada de su aplicación:

appservices push

Un reenvío de registros podría 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.

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

Nota

Si se suspende un reenvío de registros, se envía un correo electrónico al propietario del proyecto para notificarle sobre el problema.

Volver

Registros

En esta página