针对作业事件添加电子邮件和系统通知

通过配置运行启动、成功完成、失败或其持续时间超过配置的阈值时的通知,可以监视作业的运行和属于该作业的任务。 通知可以发送到一个或多个电子邮件地址或系统目标,例如 Slack、Microsoft Teams、PagerDuty 或任何基于 Webhook 的服务。

配置系统通知

注意

  • 对于每个作业或任务,最多可以为每种通知事件类型配置 3 个系统目标。
  • 管理员必须配置系统目标。 通过在“编辑系统通知”对话框或管理员设置页中选择“创建新目标”来配置系统目标。
  • 重试失败的任务时,不会发送在作业级别设置的通知。 要在每次失败的任务(包括每次失败的重试)后接收失败通知,请改用任务通知。 要为任务运行添加系统通知,请在添加或编辑作业任务时,在任务面板中单击“通知”旁边的“+ 添加”
  • Succeeded with failures 状态下完成的作业被视为处于成功状态。 若要接收处于此状态的作业的警报,必须在配置通知时选择“成功”。

系统通知与常用通知工具集成,包括:

若要在此作业的运行出现可通知的事件(例如作业启动、完成或失败)时添加一个或多个系统通知:

  1. 在作业的“作业详细信息”面板中,单击“编辑通知”。
  2. 单击“添加通知”,然后在“目标”中选择系统目标。
  3. 在“选择系统目标”中选择一个目标,然后单击要发送到该目标的每种通知类型所对应的复选框
  4. 若要添加其他目标,请再次单击“添加通知”
  5. 单击“确认” 。

重要

Slack 和 Microsoft Teams 消息的内容可能会在将来的版本中更改。 不应实现依赖于这些消息的特定内容或格式的客户端或处理。 如果需要通知的特定架构或格式,Azure Databricks 建议配置用户定义的 Webhook。

配置电子邮件通知

注意

  • 重试失败的任务时,不会发送在作业级别设置的通知。 要在每次失败的任务(包括每次失败的重试)后接收失败通知,请改用任务通知。 要为任务运行添加电子邮件通知,请在添加或编辑作业任务时,在任务面板中单击“通知”旁边的“+ 添加”
  • Succeeded with failures 状态下完成的作业被视为处于成功状态。 若要接收处于此状态的作业的警报,必须在配置通知时选择“成功”。

若要添加一个或多个电子邮件地址以在此作业的运行开始、完成或失败时接收通知,请执行以下操作:

  1. 在作业的“作业详细信息”面板中,单击“编辑通知”。
  2. 单击“添加通知”并在“目标”中选择“电子邮件地址”。
  3. 输入电子邮件地址,然后单击要发送到该地址的每个通知类型的复选框。
  4. 若要输入另一个电子邮件地址来接收通知,请再次单击“添加通知”。
  5. 单击“确认” 。

可以使用电子邮件通知与 Amazon SES 和 SNS 等工具集成。

为运行缓慢或延迟的作业配置通知

如果为作业配置了预期的工期,则可以添加作业超出配置的持续时间时的电子邮件或系统通知。 若要接收超出持续时间阈值的作业的通知,请在添加或编辑通知时单击“持续时间警告”复选框。

过滤掉已跳过或取消的运行的通知

可以通过筛选掉跳过或取消运行时发送的通知来减少发送的通知数。 若要筛选通知,请在添加或修改电子邮件通知系统通知时勾选“静音已跳过的运行的通知”或“静音已取消的运行的通知”

注意

为作业选择“静音已跳过的运行的通知”或“静音已取消的运行的通知”不会过滤掉为作业任务配置的通知。 若要筛选已跳过或取消的运行的所有通知,还必须过滤掉所有已配置的任务级通知。

HTTP Webhook 有效负载

如果使用 HTTP Webhook 发送通知,下面是 Azure Databricks 发送到配置的终结点的示例有效负载。

作业运行启动事件的通知:

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

任务运行启动事件的通知:

{
  "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"
  }
}

配置目标时,可以为以下事件类型配置 Webhook:

事件代码 何时发送?
jobs.on_start 运行启动。
jobs.on_success 运行会停止,并在成功或成功但有失败状态下完成。
jobs.on_failure 运行停止,状态为失败。
jobs.on_duration_warning_threshold_exceeded 运行的运行时间已超过配置的预期持续时间。