Encaminhar registros para um serviço
Nesta página
- Visão geral
- Por que devo configurar o encaminhamento de registros?
- Como o encaminhamento de registros é cobrado?
- Configurar um encaminhador de registros
- 1. Criar um encaminhador de registros
- 2. Escolha quais registros encaminhar
- 3. Configurar agrupamento de registros em lote
- 5. Definir uma ação
- 6. Salve e implemente suas alterações
- Reiniciar um encaminhador de registro suspenso
Visão geral
Você pode configurar um encaminhador de registros para armazenar automaticamente os registros do lado do servidor da sua aplicação em uma collection MongoDB ou enviá-los para um serviço externo. O Atlas App Services pode encaminhar registros individualmente à medida que são criados ou registros em lote juntos para reduzir a sobrecarga.
Um encaminhador de registros consiste nos seguintes componentes:
Uma ação que controla como e para onde o App Services encaminha os registros.
Um filtro que controla quais registros o App Services encaminha.
Uma política que controla se o App Services os registra em lote ou os encaminha individualmente.
Por que devo configurar o encaminhamento de registros?
Considere configurar um encaminhador de registros se você precisar fazer qualquer uma das seguintes ações:
Armazene registros por mais tempo do que o período de retenção do App Services de 10 dias.
Integrar registros em um serviço de registro externo
Acessar registros no Atlas Search, Atlas Online Archive e Charts
Como o encaminhamento de registros é cobrado?
Cada invocação de ação de encaminhamento de registro (em um registro individual ou em lote) é cobrada como uma solicitação do App Services.
Configurar um encaminhador de registros
1. Criar um encaminhador de registros
Para criar um novo encaminhador de registro, navegue até a página Logs e selecione a aba Forwarding . Em seguida, clique no botão Create a Log Forwarder .
Na próxima tela, especifique um nome exclusivo para o encaminhador de registros.
Para criar um novo encaminhador de registro, adicione um novo arquivo de configuração ao diretório log_forwarders
da sua aplicação. O nome do arquivo deve corresponder ao valor no campo name
da configuração.
{ "name": "<name>" }
2. Escolha quais registros encaminhar
O App Services pode encaminhar todos os logs do seu aplicativo ou enviar somente um subconjunto para a collection ou serviço de destino. Você controla esse subconjunto para cada encaminhador de registro definindo filtros para o tipo de registro (por exemplo funções, sincronização, etc.) e status (ou seja, sucesso ou erro) que invocam a ação do encaminhador.
Escolha um ou mais tipos de registro para encaminhar no menu suspenso Log Type :
Escolha um ou mais status para encaminhar no menu suspenso Log Status :
Especifique um ou mais tipos e um ou mais status para o encaminhador corresponder e encaminhar:
{ "name": "<name>", "log_types": [ "<type>", ... ], "log_statuses": [ "<status>", ... ] }
O App Services suporta o encaminhamento dos seguintes tipos de registro:
auth
endpoint
function
graphql
push
schema
service
sync
trigger
trigger_error_handler
O App Services suporta o encaminhamento dos seguintes status de registro:
error
success
Importante
O App Services só encaminha um determinado registro se seu tipo e status forem especificados no filtro.
Por exemplo, considere um encaminhador que filtra logs sync
com status error
.
O filtro encaminharia o seguinte registro:
{ "type": "sync", "status": "error", ... }
O filtro não encaminharia os seguintes registros:
{ "type": "sync", "status": "success", ... } { "type": "schema", "status": "error", ... }
3. Configurar agrupamento de registros em lote
O App Services pode combinar vários registros em uma única solicitação em lote para reduzir a sobrecarga. A maneira como os grupos do App Services fazem login em lotes é controlada por uma política de lote.
O App Services oferece suporte às seguintes políticas de lote:
Sem lote: o App Services encaminha os registros individualmente à medida que suas solicitações correspondentes ocorrem.
Lote: o encaminhador agrupa documentos em um lote conforme eles acontecem. Cada lote pode incluir até 100 entradas de registro. Quando um lote está cheio, o App Services encaminha todo o lote em uma única solicitação. O App Services encaminha os registros pelo menos uma vez por minuto, independentemente do número de registros no lote atual.
Para configurar o lote, selecione a política No batch ou Batching .
Para configurar o lote, especifique o tipo de política, single
ou batch
, no campo policy
:
{ "name": "<name>", "log_types": [ "<type>", ... ], "log_statuses": [ "<status>", ... ], "policy": { "type": "<single|batch>" } }
5. Definir uma ação
Um encaminhador de registros pode armazenar registros automaticamente em uma coleção MongoDB vinculada ou chamar uma função personalizada que envia os registros para um serviço externo.
Armazenar registros em uma collection MongoDB
Para armazenar registros em uma collection, selecione a ação To Collection e insira os nomes do cluster vinculado, do reconhecimento de data center e da collection que devem manter os registros encaminhados.
Para armazenar registros em uma collection, especifique um action
do tipo collection
que inclui os nomes do cluster vinculado, banco de dados de dados e collection que devem manter os registros encaminhados.
{ "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>" } }
Encaminhar registros com uma função personalizada
Para encaminhar registros para um serviço externo, escreva uma função que aceite uma array de objetos de log e chame o serviço por meio de uma API, SDK ou biblioteca.
Observação
Dependendo da sua política de lote e da frequência de registros, o App Services pode chamar uma função de encaminhamento de registros com uma array de até 100 objetos de registro.
A função deve ter a mesma assinatura do exemplo a seguir:
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 }); }
Depois de escrever a função de encaminhamento de registros, você pode atribuí-la a um encaminhador de registros por nome.
Para atribuir uma função a um encaminhador de registro, selecione a ação To Function e, em seguida, selecione a função na entrada suspensa.
Para atribuir uma função a um encaminhador de registro, especifique um action
do tipo function
que inclui o nome da função de encaminhamento de registro.
{ "name": "<name>", "log_types": [ "<type>", ... ], "log_statuses": [ "<status>", ... ], "policy": { "type": "<single|batch>" }, "action": { "type": "function", "name": "<function name>" } }
6. Salve e implemente suas alterações
Após configurar o encaminhador de registro, clique em Save . Se você tiver esquemas de distribuição habilitados, certifique-se de distribuir suas alterações.
Depois de configurar o encaminhador de registro, salve o arquivo de configuração e envie a configuração atualizada do aplicativo:
appservices push
Reiniciar um encaminhador de registro suspenso
Um encaminhador de registros pode ser suspenso em resposta a um evento que o impeça de continuar, como uma interrupção da rede ou uma alteração no cluster subjacente que armazena os registros. Uma vez suspenso, um encaminhador não pode ser invocado e não encaminha nenhum registro.
Você pode reiniciar um encaminhador de registro suspenso na tela Logs > Forwarding da interface do usuário do App Services.
Observação
Se um encaminhador de registro for suspenso, o App Services enviará ao proprietário do projeto um e-mail alertando-o sobre o problema.