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.
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:
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.
É possível clicar em um evento para visualizar os detalhes:
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:
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.
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.
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.
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}`);
});
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:
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.
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.
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.
Abaixo, é exibido um exemplo de integração através do Webhook com o Slack:
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=