Skip to main content

Alerts Management

O objetivo desta documentação é apresentar o processo de gerenciamento de alertas da Carol.

O objetivo do módulo de alertas é permitir a monitorização de eventos na esteira de dados da plataforma Carol.

Data Journey

A plataforma Carol fornece uma esteira de dados que requer monitoramento constante para assegurar a entrega do valor proposto pela plataforma.

O monitoramento dos processos dentro da plataforma é de responsabilidade dos times responsáveis pelos Data Apps. Por exemplo, as pipelines SQL devem ser monitoradas pelos times que desenvolvem as pipelines, permitindo assim a manutenção rápida no caso de alguma falha ou bug ser detectado na pipeline.

Atualmente, a plataforma Carol possui os seguintes módulos integrados ao Alerts Management. Isso significa que os módulos abaixo estão gerando eventos para o Alerts Management, permitindo que eles sejam convertidos em notificações:

  • Erros de execução de pipelines SQL.

Os módulos a seguir estão programados para serem entregues em breve:

  • Tasks de Data Apps com falhas (Carol App Batch e Online process).
  • Data Subscription returnando nACK.

Além dos eventos padrões da plataforma, é possível que os Data Apps integrem-se com o Alerts Management, gerando eventos que serão orquestrados pelo módulo de alerts, permitindo assim a geração de notificações.

Modelo da solução

A seguir, é apresentado o modelo da solução implementado:

Alerts Management - Solution

Nesse diagrama, destacamos o seguinte:

Eventos: A plataforma Carol captura eventos de forma automática. Esses eventos são a base para a geração de notificações por meio da configuração das políticas. Policies de alertas: Estabelecem quais eventos serão considerados para a geração de notificações e qual threshold deve ser aplicado para gerar as notificações.

  • Notificações: São o agrupamento de um ou vários eventos para serem enviados através de um canal.
  • Canais: Um canal pode ser o envio de um e-mail ou o envio de mensagens via Webhook registrado. Os canais transmitem notificações, que são grupos de eventos.

Configurando o Alerts Management

Agora, vamos verificar como configurar o Alerts Management. Todas as configurações são feitas no nível da organização pelo usuário que possui a permissão de Org Admin. Se você não tiver essa permissão, por favor, entre em contato com o administrador do seu ambiente Carol.

Consultando os eventos

O primeiro passo é verificar os eventos gerados em sua organização. Na tela abaixo, é possível consultar e filtrar os eventos.

Alerts Management - Events

É possível clicar em um evento para visualizar os detalhes:

Alerts Management - Events

Os eventos de SQL Processing são, na verdade, um reflexo de tarefas que falharam nas tenants pertencentes à organização atual. Portanto, podemos acessar a tenant que está gerando esses eventos e verificar as tarefas que estão falhando:

Alerts Management - Events

Configurando Alert policies

As políticas de alertas determinam quais eventos serão gerenciados pela política atual. Esse recurso permite filtrar os eventos gerados, definir o limite para a geração dos eventos e especificar os canais para a propagação das notificações.

Uma política pode configurar quantos canais forem necessários.

Alerts Management - Events

Abaixo é possível visualizar uma política filtrando eventos de erro. Essa política não filtra nenhuma tenant; logo, notificações serão propagadas quando um total de 5 ocorrências for gerado em um período de uma hora.

Essa política em questão possui o envio das notificações para dois canais: e-mail e webhook.

Alerts Management - Events

Definindo canais

Outro passo importante é determinar como as notificações serão transmitidas. Neste momento, é possível configurar dois canais: e-mail e webhook.

O Webhook oferece total flexibilidade, permitindo que código específico seja acionado e integrando os alertas da Carol com qualquer ferramenta, incluindo Datadog, Slack, sistemas legados e automações específicas.

O serviço do Webhook pode ser disponibilizado em qualquer infraestrutura, como, por exemplo, o Cloud Functions da Google.

Alerts Management - Events

Abaixo é exibido um exemplo da configuração de um webhook. Webhooks são extremamente simples, e uma forma de implementação é a seguinte:

const functions = require('@google-cloud/functions-framework');

functions.http('alerts-management', (req, res) => {
console.info(JSON.stringify(req.body));
res.send(`OK - received ::: ${req.query.name || req.body.name}`);
});

Alerts Management - Events

Outro canal disponibilizado é o e-mail. Para este, é necessário apenas informar o destinatário que receberá o e-mail, conforme mostrado na imagem abaixo:

Alerts Management - Events

Visualizando notificações

A tela de notificações permite visualizar notificações geradas pelas políticas. Ou seja, eventos que atingiram o limite definido na política.

Alerts Management - Events

As notificações podem agrupar diversos eventos, e eles estão disponíveis na notificação, como mostrado abaixo. É possível clicar na notificação para acessar o evento e visualizar seus detalhes.

Alerts Management - Events

Recebendo notificações nos canais configurado

Além de estarem disponíveis na plataforma, as notificações são transmitidas através dos canais configurados.

Abaixo, mostramos um exemplo da notificação recebida por e-mail.

Alerts Management - Events

Abaixo, é exibido um exemplo de integração através do Webhook com o Slack:

Alerts Management - Events

Integração com Alerts Management

O Alerts Management permite a integração e, para isso, é disponibilizado um SDK para integração utilizando diferentes tecnologias. Você pode obter mais detalhes neste link: https://github.com/orgs/totvslabs/repositories?q=alert&type=all&language=&sort=