top of page
Foto do escritorReginaldo Silva

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


 

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')

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


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.


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


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.


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.


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


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


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


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.


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.


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


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.


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

User Settings -> Notifications -> Notifications Destinations


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.

E-mail:


Teams:


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



Meus alertas criados:


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.


Alerta por e-mail:


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


Alerta via Teams:

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:


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.


Exemplo usando o Custom Template:



Resultado:

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.


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


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


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


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


 

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.






568 visualizações0 comentário

Comments


Post: Blog2 Post
bottom of page