ジョブの実行時に送信される通知と、次のイベントに対する個々のジョブ タスクを設定できます。
- [開始]
 - 正常に完了しました
 - 失敗
 - 期間が構成されたしきい値を超えています
 
Slack、Microsoft Teams、PagerDuty、Webhook ベースのサービスなど、1 つ以上のメール アドレスまたはサード パーティの宛先に通知を送信できます。 この記事では、ジョブ レベルの通知を設定するさまざまな方法について説明します。
サード パーティのシステムの宛先を追加する
サードパーティのシステムに配信する通知を設定できます。 サードパーティのシステム送信先は、Slack、PagerDuty、Microsoft Teams、HTTP Webhooks などを含む一般的な通知ツールと統合されます。 管理者はシステムの宛先を構成する必要があります。
システムの宛先を構成するには、[管理者設定] ページに移動し、[ システム通知の編集 ] をクリックし、[ 新しい宛先の作成] をクリックします。 ジョブまたはタスクごとに、通知イベントの種類ごとに最大 3 つのシステム宛先を構成できます。 管理者設定ページを参照してください。
重要
Slack と Microsoft Teams のメッセージの内容は、今後のリリースで変更される可能性があります。 これらのメッセージの特定の内容や書式設定に依存するクライアントや処理は実装しないでください。 通知に特定のスキーマまたは書式設定が必要な場合、Databricks ではユーザー定義の Webhook を構成することをお勧めします。
ジョブで通知を構成する
開始する前に、次のことを検討してください。
- 失敗したタスクが再試行されても、ジョブ レベルの通知は送信されません。 失敗したタスクごとにエラー通知を受信するには、代わりにタスク通知を使用します。 タスク実行の通知を追加するには、ジョブ タスクを追加または編集するときに、タスク パネルの [通知 ] の横にある [追加] をクリックします。
 - ジョブまたはタスクごとに、通知イベントの種類ごとに最大 3 つのシステム宛先を構成できます。
 - 一部失敗しつつ成功した状態で完了したジョブは、正常な状態にあると見なされます。 この状態でジョブが完了したときに通知を受け取る場合は、通知を構成するときに [成功] を選択する必要があります。
 - ジョブが期間の制限を超えたときに通知を受け取る場合は、制限を設定する必要があります。
 
ジョブの実行が開始、完了、または失敗したときに 1 つ以上の通知を追加するには、次の操作を行います。
- ジョブの [ ジョブの詳細 ] パネルで、[ ジョブ通知 ] セクションまで下にスクロールし、[ 通知の編集] をクリックします。
 - 左下隅にある [ 通知の追加] をクリックします。
 - [宛先] で、[メール アドレス] または [システムの宛先] を選択します。
 - 通知を受け取るイベントの種類 ( 開始、 成功、 失敗、 期間の警告、 ストリーミング バックログ) のチェック ボックスをオンにします。
 - 別の宛先を構成するには、[ 通知の追加 ] をもう一度クリックし、前の手順に従います。
 - すべての通知を構成したら、[ 保存] をクリックします。
 
低速ジョブの通知を構成する
ジョブの予想期間を構成している場合は、ジョブまたはタスクが構成されたしきい値を超えた場合に電子メールまたはシステム通知を追加できます。 期間のしきい値を超えるジョブまたはタスクの通知を受信するには、通知を追加または編集するときに [ 期間の警告 ] を選択します。 ストリーミング バックログ メトリックを超えるジョブまたはタスクの通知を受信するには、通知を追加または編集するときに [ ストリーミング バックログ ] を選択します。
ストリーミング バックログ メトリックには、次のことが適用されます。
- 通知は、10 分間の平均バックログが定義されたしきい値を超えると送信されます。
 - 過剰なメッセージを防ぐために、Azure Databricks は、別のメッセージを送信するかどうかを決定する前に 30 分待機します。 バックログは高いままですが、30 分間隔で更新プログラムを受け取ります。
 
スキップまたは取り消された実行の通知を除外する
実行がスキップまたはキャンセルされたときに通知をフィルターで除外することで、送信される通知の数を減らすことができます。 通知をフィルター処理するには、 スキップされた実行の通知をミュート にするか、メール通知またはシステム通知を追加または変更するときに キャンセルされた実行 の通知をミュートします。
既定では、タスクは完全に失敗する前に 3 回再試行されます。 タスク通知を構成する場合は、 最後の再試行まで通知をミュート にして、最後の再試行まですべての通知を除外することができます。
注
[スキップされた実行の通知をミュートする] または [ジョブのキャンセルされた実行の通知をミュート] を選択した場合、ジョブ タスク用に構成された通知は除外されません。 スキップまたは取り消された実行に対するすべての通知を除外するには、構成したタスク レベルの通知もすべて除外する必要があります。
HTTP Webhook ペイロード
次の表に示すイベントに対して送信される HTTP Webhook を構成できます。
| イベントタイプコード | 送信されるタイミング | 
|---|---|
jobs.on_start | 
実行の開始時に送信されます。 | 
jobs.on_success | 
実行が停止し、成功であるが一部失敗が含まれる状態で完了したときに送信されます。 | 
jobs.on_failure | 
実行が失敗した状態で停止したときに送信されます。 | 
jobs.on_duration_warning_threshold_exceeded | 
構成された予想期間を超える実行が実行されたときに送信されます。 | 
Azure Databricks によって構成されたエンドポイントに送信されるペイロードの例を次に示します。 これらの Webhook は、ジョブまたはタスクに適用できます。
ジョブ実行開始イベントの通知:
{
  "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"
  }
}
ジョブ実行エラーの通知:
{
  "event_type": "jobs.on_failure",
  "workspace_id": "your_workspace_id",
  "run": {
    "run_id": "run_id"
  },
  "job": {
    "job_id": "job_id",
    "name": "job_name"
  }
}
タスクの実行が成功した場合の通知:
{
  "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"
  }
}