top of page

Databricks - Alertas e Envio do Dashboards por e-mail

Fala dataholics, no post de hoje veremos algo bem útil e comum no dia a dia, criação de alertas personalizados e também como enviar um Dashboard para o seu e-mail.


Não há nada mais comum que a necessidade de ser avisado sobre determinado comportamento ou evento, exemplo, preciso saber quando um incidente acontecer na minha produção, para isso configuramos ferramentas de monitoramento que disparam notificações e alertas.


No Databricks temos um mecanismo nativo de alerta, facilitando envio de notificações sem precisar plugar uma ferramenta de terceiro.


No post de hoje veremos:

  • Configurando alertas

  • Notificações por e-mail

  • Notificações Teams com WebHook

  • Notificação Teams via e-mail

  • Custom Template - HTML

  • Alerta de custos com Databricks

  • Dashboards

  • Envio do Dashboard por e-mail


ree

Configurando alertas


No Databricks os alertas são baseados em Queries SQL, o resultado dessa query será avaliado conforme as regras definidas e caso atenda os requisitos será disparado o alerta.


Como podemos escrever qualquer coisa na nossa query SQL as coisas podem ser extremamente dinâmicas e você pode criar regras bem complexas e aderentes ao seu negócio e necessidade.


Vamos para um exemplo, quero criar um alerta de custo no meu ambiente, para ser alertado quando minha billing passar de um determinado valor.


Vamos criar nossa query, estarei usando as tabelas de sistema do Unity Catalog, basicamente estou pegando todo o consumo de DBUs no mês corrente.

-- total em USD
select 
sum(usage_quantity) as DBUs, 
(sum(usage_quantity) * max(c.pricing.default)) as TotalUSD 
from system.billing.usage a 
inner join system.billing.list_prices c on c.sku_name = a.sku_name
where usage_end_time >= TRUNC(current_date , 'MM')
ree

Agora para criarmos nosso alerta salvaremos essa query, no meu ambiente salvei como "Monitoramento de Custo".

ree

Agora vamos criar nosso alerta, temos duas opções para criar nosso alerta, como já estamos dentro da Query, temos a opção de clicar em Create Alert ou ir pelo menu de Alerts.

ree

Ambos vão te levar para a mesma página, aqui definiremos as regras de disparo do nosso alerta.

ree

Aqui defini o nome do alerta, defina um nome que seja fácil de entender, abaixo veja que posso listar todas as queries disponíveis, somente queries SQL.

ree

Agora a parte da definição da regra, podemos aplicar diversas regras, no meu caso, estou pegando o campo TotalUSD da primeira linha (A minha query sempre retornará uma linha, então fique atento na sua regra), quando o totalUSD for maior do que 1 o nosso alerta será disparado.

ree

Você pode usar outras lógicas aqui, isso dependerá da sua necessidade.

ree

Aqui definimos qual o estado do nosso alerta e podemos dar um preview para avaliar o situação atual.

ree

Esse é o status atual, ou seja, esta dentro da normalidade baseado na nossa regra.

ree

Quando o alerta será enviado? Aqui temos a opção de disparar somente 1 vez e só disparar novamente quando ele se resolver e voltar ao estado de alerta, esse caso é bom que a sua caixa de notificação ficar mais limpa.

Na segunda condição, o alerta será enviado em todas as avaliações, exemplo, imagine que seu alerta é avaliado de minuto em minuto, você recebera um e-mail de minuto em minuto, pode ser bom para chamar mais atenção.

ree

Por último, temos essa opção de receber uma notificação quando o alerta voltar ao normal, exemplo, recebermos uma notificação quando tudo estiver OK, isso é bem útil, pois, imagine que você esta fora de casa, recebe um alerta, você já ficará preocupado e pensando em voltar para casa o mais rápido possível, se o alerta se resolver, você recebera uma notificação de OK e poderia ficar mais tranquilo.

ree

Alerta criado, agora precisamos definir o agendamento e quem são os destinatários.

ree

Sobre o agendamento não tem muito segredo, você define a frequência que deseja que o alerta seja avaliado, aqui o ponto importante é definir o cluster que a query será executada, então lembre-se, tem custo manter um cluster ligado, se quiser avaliar de minuto em minuto, você precisar ter um cluster ligado 24/7.

ree

Agora na hora de definir quem são os destinatários, primeiro precisamos cadastrar na tela de configuração User Settings -> Notifications -> Notifications Destinations

ree

User Settings -> Notifications -> Notifications Destinations

ree

Nos destinatários temos algumas opções interessantes como Slack, Teams, E-mail e Webhook, para nosso exemplo criarei um de e-mail e um de teams.

ree

E-mail:

ree

Teams:

ree

Pronto, agora nosso alerta pode ser disparado para os destinatários escolhidos:

ree

ree

Meus alertas criados:

ree

Agora forçaremos nosso alerta disparar para ver a notificação, para isso, vou ajustar o Threshold definido de 1 para 0.5 no totalUSD.

ree

Alerta por e-mail:

ree

Quando o alerta normalizar receberemos esse e-mail de OK:

ree

Alerta via Teams:

ree

Para receber nesse formato acima precisamos configurar um WebHook de entrada conforme abaixo:


MAS, quer uma dica mais legal? Você pode gerar um e-mail para seu canal no Teams e enviar como se fosse um e-mail, exemplo:

ree

Será gerado um e-mail mais ou menos assim:


Basta você cadastrar esse e-mail como Destinatário e pronto.


Outra coisa interessante é usar o Custom Template para customizar seu e-mail, você pode adicionar mais informações dinâmicas dentro do seu e-mail e também um pouco de HTML, embora, não da para fazer muita florzinha, ele aceita apenas algumas coisas de HTML.

ree

Exemplo usando o Custom Template:

ree

ree

Resultado:

ree

Tentei deixar colorido, mas não suportou rs, embora, já ajuda muito adicionando mais informações no corpo, você poderia colocar links de documentações, WIKI e por aí vai.


Curtiu?

Dashboards - Envio por e-mail


Com o Databricks temos a possibilidade de criar Dashboards e compartilhar com usuários, aqui dentro a criatividade é o limite, é uma ferramenta bem dinâmica e pode gerar dashboards sensacionais.


Mas a dica aqui não será sobre criação e utilização dos Dashboards, como o tema é envio de notificação, quero mostrar uma opção bem legal que é enviar o seu Dashboard por e-mail.


Vamos criar nosso Dashboard bem simples, usei a mesma query, mas agora agrupando o custo por mês e temos o gráfico abaixo.

ree

Você pode compartilhar esse Dashboard com seu time ou mesmo baixar o PDF de forma bem simples:

ree

Agora vamos agendar nosso Dashboard para enviar um e-mail todos os dias as 07 AM, primeiro passo é criar o agendamento.

ree

Adicionaremos assinantes para o nosso Dashboard e marcar essa opção "Send dashboard snapshot to subscribers".

ree

Pronto, seu Dashboard chegará por e-mail com uma foto e um anexo em PDF, sensacional não é?

ree

Resumo


No post de hoje vimos ser possível enviar alertas customizados para um grupo de destinatários e ferramentas diferentes como Slack, Teams e e-mail, tudo isso sem precisar de ferramentas de terceiros e sem precisar configurar servidor de e-mail.


Pode ser útil tanto para alertas reativos, como a notificação de uma falha ou incidente, como para alertas mais proativos ou informativos.


Vimos a possibilidade de enviar dashboard por e-mail, recebendo uma foto + PDF.


Quanto custos tudo isso?

Somente o tempo de processamento da query, ou seja, se o seu alerta é validado de hora em hora, você vai pagar por esses minutos que seu cluster ficou ligado, se ja possui um cluster ligado o tempo todo, na teoria você pode reaproveitá-lo e não ter custo nenhum.


Espero que tenha gostado.


Fique bem e até a próxima.






Comentários


Post: Blog2 Post
bottom of page