ジョブに通知を追加する

次のイベントについて、ジョブおよび個々のジョブタスクの実行時に送信される通知を設定できます。

  • 起動

  • 正常に完了しました

  • 失敗

  • 期間が設定されたしきい値を超えています

通知は、1つ以上のEメールアドレス、またはSlack、 Microsoft Teams、PagerDuty、または任意のWebhookベースのサービスなどのサードパーティの宛先に送信できます。 この記事では、ジョブ レベルの通知を設定するさまざまな方法について説明します。

サードパーティのシステム送信先を追加する

通知をサードパーティーのシステムに配信するように設定できます。 サードパーティのシステム送信先は、Slack、PagerDuty、Microsoft Teams、 HTTP Webhookなどの一般的な通知ツールと統合されています。 管理者は、システムの宛先を構成する必要があります。

システムの宛先を構成するには、管理者設定ページに移動し、[ システム通知の編集 ] をクリックしてから、[ 新しい宛先の作成] をクリックします。 ジョブまたはタスクごとに、通知イベントの種類ごとに最大 3 つのシステム宛先を設定できます。 「管理者設定ページ」を参照してください。

重要

Slack と Microsoft Teams のメッセージの内容は、将来のリリースで変更される可能性があります。 これらのメッセージの特定の内容や形式に依存するクライアントや処理は実装しないでください。 通知に特定のスキーマまたは形式が必要な場合、Databricks ではユーザー定義の Webhook を構成することをお勧めします。

ジョブの通知を構成する

開始する前に、次の点を考慮してください。

  • ジョブ レベルの通知は、失敗したタスクが再試行されたときには送信されません。 タスクが失敗するたびに失敗通知を受け取るには、代わりにタスク通知を使用します。 タスク実行の通知を追加するには、ジョブタスクを追加または編集するときに、タスクパネルの 「通知 」の横にある「追加」をクリックします。

  • ジョブまたはタスクごとに、通知イベントの種類ごとに最大 3 つのシステム宛先を設定できます。

  • 成功 (失敗を含む) 状態で完了したジョブは、成功状態と見なされます。この状態でジョブが完了したときに通知を受け取るには、通知を構成するときに [成功] を選択する必要があります。

  • ジョブが期間制限を超えたときに通知を受け取るには、制限を設定する必要があります。

ジョブの実行が開始、完了、または失敗したときに 1 つ以上の通知を追加するには、次の操作を行います。

  1. ジョブ のジョブ詳細 パネルで、[ ジョブ通知 ] セクションまで下にスクロールし、[ 通知の編集] をクリックします。

  2. 左下隅にある [ 通知の追加] をクリックします。

  3. 「宛先」で、「Eメールアドレス」またはシステム宛先を選択します。

  4. 通知を受け取るイベントの種類ごとに、 [開始] 、 [成功] 、 [失敗] 、 [期間の警告] 、または [ストリーミング バックログ] のチェック ボックスをオンにします。

  5. 別の宛先を設定するには、もう一度 [通知の追加 ] をクリックし、前の手順に従います。

  6. すべての通知を設定したら、[ 保存] をクリックします。

低速ジョブの通知を構成する

ジョブの予想期間を設定している場合は、ジョブまたはタスクが設定されたしきい値を超えた場合に、Eメールまたはシステム通知を追加できます。期間のしきい値を超えたジョブまたはタスクの通知を受け取るには、通知を追加または編集するときに [期間の警告 ] を選択します。 ストリーミング バックログ メトリクスを超えるジョブまたはタスクの通知を受け取るには、通知を追加または編集するときに [ストリーミング バックログ ] を選択します。

ストリーミング バックログのメトリクスには、次の点が適用されます。

  • 通知は、10 分間の平均バックログが定義されたしきい値を超えたときに送信されます。

  • 過剰なメッセージを防ぐために、Databricks は 30 分間待ってから、別のメッセージを送信するかどうかを決定します。 バックログは高いままですが、30 分間隔で更新を受け取ります。

スキップまたはキャンセルされた実行の通知を除外する

実行がスキップまたはキャンセルされたときの通知を除外することで、送信される通知の数を減らすことができます。 通知をフィルタリングするには、Eメール通知またはシステム通知を追加または変更するときに、[ スキップされた実行の通知をミュート する]または[ キャンセルされた実行の通知をミュート する]を選択します。

デフォルトでは、タスクは完全に失敗する前に 3 回再試行されます。 タスク通知を設定するときに、[ 最後の再試行まで通知をミュート する] を選択して、最後の再試行まですべての通知を除外できます。

注:

[スキップされた実行の通知をミュートする] または [ジョブのキャンセルされた実行の通知をミュートする] を選択しても、ジョブ タスクに設定された通知は除外されません。スキップまたはキャンセルされた実行のすべての通知をフィルター処理するには、構成したタスク レベルの通知もフィルターで除外する必要があります。

HTTP Webhook ペイロード

次の表に示すイベントで送信されるように HTTP Webhook を設定できます。

Event_typeコード

いつ送信されますか?

jobs.on_start

実行の開始時に送信されます。

jobs.on_success

実行が停止し、成功または失敗で成功した状態で完了したときに送信されます。

jobs.on_failure

実行が失敗した状態で停止したときに送信されます。

jobs.on_duration_warning_threshold_exceeded

設定された予想期間を超えて実行が実行されている場合に送信されます。

以下は、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"
  }
}