Partilhar via


Adicionar notificações em um trabalho

Você pode configurar notificações a serem enviadas em execuções de um trabalho e tarefas de trabalho individuais para os seguintes eventos:

  • Início
  • Conclusão bem-sucedida
  • Fracasso
  • A duração excede um limite configurado

Você pode enviar notificações para um ou mais endereços de e-mail ou destinos de terceiros, como Slack, Microsoft Teams, PagerDuty ou qualquer serviço baseado em webhook. Este artigo descreve as diferentes maneiras de configurar notificações no nível do trabalho.

Adicionar destinos de sistemas de terceiros

Você pode configurar notificações para serem entregues a sistemas de terceiros. Destinos de sistemas de terceiros integram-se com ferramentas de notificação populares, incluindo Slack, PagerDuty, Microsoft Teams e webhooks HTTP. Os destinos do sistema têm de ser configurados por um administrador.

Para configurar destinos do sistema, vá para a página de configurações de administrador, clique em Editar notificações do sistema e, em seguida, clique em Criar novo destino. Para cada trabalho ou tarefa, você pode configurar um máximo de três destinos do sistema para cada tipo de evento de notificação. Consulte página de configurações de administrador.

Importante

O conteúdo das mensagens do Slack e do Microsoft Teams pode mudar em versões futuras. Você não deve implementar clientes ou processamento que dependem do conteúdo específico ou da formatação dessas mensagens. Se você precisar de um esquema ou formatação específica para notificações, o Databricks recomenda configurar um webhook definido pelo usuário.

Configurar notificações em um trabalho

Antes de começar, considere o seguinte:

  • As notificações de nível de trabalho não são enviadas quando tarefas com falha são repetidas. Para receber uma notificação de falha após cada tarefa com falha, use notificações de tarefas. Para adicionar notificações para execuções de tarefas, clique em Adicionar ao lado de Notificações no painel de tarefas quando adicionar ou editar uma tarefa de trabalho.
  • Para cada trabalho ou tarefa, você pode configurar um máximo de três destinos do sistema para cada tipo de evento de notificação.
  • Um trabalho que tenha sido concluído em um estado Sucedido com falhas é considerado bem-sucedido. Para ser notificado quando os trabalhos tiverem sido concluídos nesse estado, você deve selecionar Êxito ao configurar notificações.
  • Para ser notificado quando o seu trabalho exceder um limite de duração, tem de definir o limite.

Para adicionar uma ou mais notificações quando uma execução de trabalho começa, é concluída ou falha, faça o seguinte:

  1. No painel Detalhes do trabalho para a sua tarefa, percorra até à secção Notificações de trabalho e, em seguida, clique em Editar notificações.
  2. No canto inferior esquerdo, clique em Adicionar notificação.
  3. Em Destino, selecione Email ou um destino do sistema.
  4. Marque as caixas de seleção para cada tipo de evento sobre o qual quer ser notificado: Início, Sucesso, Falha, Aviso de Duração, ou Lista de Pendências de Streaming.
  5. Para configurar outro destino, clique novamente em Adicionar notificação e siga as etapas anteriores.
  6. Depois de configurar todas as notificações, clique em Salvar.

Configurar notificações para trabalhos lentos

Se você configurou uma duração esperada para um trabalho, você pode adicionar um e-mail ou notificação do sistema se o trabalho ou tarefa exceder o limite configurado. Para receber uma notificação para um trabalho ou tarefa que exceda um limite de duração, selecione Aviso de Duração ao adicionar ou editar uma notificação. Para receber uma notificação de um trabalho ou tarefa que exceda uma métrica de fila de espera de streaming, selecione Fila de espera de streaming ao adicionar ou editar uma notificação.

O seguinte se aplica às métricas de lista de pendências de streaming:

  • As notificações são enviadas quando o atraso médio durante um período de 10 minutos excede o limite definido.
  • Para evitar mensagens excessivas, o Azure Databricks aguarda 30 minutos antes de determinar se deseja enviar outra mensagem. Embora a lista de pendências permaneça alta, você receberá atualizações em intervalos de 30 minutos.

Filtrar notificações para execuções ignoradas ou canceladas

É possível reduzir o número de notificações enviadas filtrando as notificações quando uma execução é ignorada ou cancelada. Para filtrar notificações, selecione Silenciar notificações para execuções ignoradas ou Silenciar notificações para execuções canceladas quando adicionar ou modificar notificações por e-mail ou notificações do sistema.

Por padrão, as tarefas são repetidas três vezes antes de falhar totalmente. Ao configurar notificações de tarefas, poderá selecionar Silenciar notificações até a última tentativa de repetição para filtrar todas as notificações até a repetição final.

Nota

Quando você seleciona Silenciar notificações para execuções ignoradas ou Silenciar notificações para execuções canceladas para um trabalho, ele não filtra as notificações configuradas para tarefas de trabalho. Para filtrar todas as notificações de execuções ignoradas ou canceladas, você também deve filtrar todas as notificações de nível de tarefa que você configurou.

Cargas úteis HTTP webhook

Você pode configurar webhooks HTTP para serem enviados nos eventos listados na tabela a seguir.

Código tipo de evento Quando é enviado?
jobs.on_start Enviado quando uma execução é iniciada.
jobs.on_success Enviado quando um processo para e é concluído em um estado bem-sucedido, ainda que com falhas.
jobs.on_failure Enviado quando uma execução é interrompida em um estado de erro.
jobs.on_duration_warning_threshold_exceeded Enviado quando uma execução está sendo executada por mais do que a duração esperada configurada.

A seguir apresentam-se exemplos de cargas enviadas pelo Azure Databricks para o seu ponto de extremidade configurado. Esses webhooks podem ser aplicados a trabalhos ou tarefas.

Notificação para um evento de início de execução de trabalho:

{
  "event_type": "jobs.on_start",
  "workspace_id": "your_workspace_id",
  "run": {
    "run_id": "run_id"
  },
  "job": {
    "job_id": "job_id",
    "name": "job_name"
  }
}

Notificação para um evento de início de execução de tarefa:

{
  "event_type": "jobs.on_start",
  "workspace_id": "your_workspace_id",
  "task": {
    "task_key": "task_name"
  },
  "run": {
    "run_id": "run_id_of_task"
    "parent_run_id": "run_id_of_parent_job_run"
  },
  "job": {
    "job_id": "job_id",
    "name": "job_name"
  }
}

Notificação de falha na execução de um trabalho:

{
  "event_type": "jobs.on_failure",
  "workspace_id": "your_workspace_id",
  "run": {
    "run_id": "run_id"
  },
  "job": {
    "job_id": "job_id",
    "name": "job_name"
  }
}

Notificação para uma execução de tarefa bem-sucedida:

{
  "event_type": "jobs.on_success",
  "workspace_id": "your_workspace_id",
  "task": {
    "task_key": "task_name"
  },
  "run": {
    "run_id": "run_id_of_task"
    "parent_run_id": "run_id_of_parent_job_run"
  },
  "job": {
    "job_id": "job_id",
    "name": "job_name"
  }
}