LoginSignup
0

More than 3 years have passed since last update.

Digdagでセッションの開始時刻が遅れた場合のslaの挙動

Last updated at Posted at 2020-12-12

Digdagを使っているときに、ワークフローの実行時間が想定よりも長い場合に何かしらの処理をしたくなる時はよくあります。
そのようなときにはsla機能を使うと良いです。
https://docs.digdag.io/scheduling_workflow.html#setting-an-alert-if-a-workflow-doesn-t-finish-within-expected-time

例えば以下のように書いておけば、ワークフローが開始されてから10分経過時点でnotice.shが実行されます。

sla:
  duration: 00:10:00
  +notice:
    sh>: notice.sh

しかし、ワークフローの定期実行を遅らせた場合には注意が必要です。

schedule:
  daily>: 07:00:00

sla:
  duration: 00:10:00
  +notice:
    sh>: notice.sh

上記のワークフローを用意し、7時になる前に digdag disable コマンドでこのワークフローを定期実行を無効化します。
そして、07:05に digdag endble でワークフローを再度有効化します。
このとき digdag enable を実行した瞬間(07:05)にワークフローが動き出します。
そしてその5分後である 07:10にsla違反によってnotice.shが実行されます。
ワークフロー開始から10分後である07:15に実行される訳ではないです。

これはsla違反の判定に使用されるワークフローの開始時刻は、実際にワークフローが開始された時刻ではなく、本来ワークフローが開始される予定だった時刻であるためです。
そのため、backfillをするときにslaを有効にしたままにすると大量のsla違反が発生することになるので注意が必要です。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0