0
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Organization

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

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違反が発生することになるので注意が必要です。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
0
Help us understand the problem. What are the problem?