Docs Menu
Docs Home
/ /
Monitorear la actividad de la aplicación

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

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

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:

El menú desplegable para seleccionar qué tipos de registros reenviar

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

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

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

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 admite el reenvío de los siguientes estados de registro:

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

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.

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

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>" }
}

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.

La acción "A colección" con un clúster, una base de datos y una colección especificados.

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, 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:

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

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.

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

Volver

Ver registros de aplicaciones

En esta página