web-dev-qa-db-ja.com

AirflowでSLAを設定する方法は?

SLAをセンサーオペレーターに設定します。 documentation の使用についてはあまり明確ではありません。そのため、S3KeySensorオペレーターを使用してテストを行いました。は存在しないファイルを探しています。slaを30秒に設定しました [〜#〜] ui [〜#〜] -で30秒後にレコードを表示することを望んでいましたSLAミス-しかし、それは起こりませんでした。何が間違っていますか?

inputsensor = S3KeySensor(
    task_id='check_for_files_in_s3',
    bucket_key='adp/backload/20136585/',
    wildcard_match=True,
    bucket_name='weblogs-raw',
    s3_conn_id='AWS_S3_CENTRAL',
    timeout=120,
    poke_interval=10,
    sla=timedelta(seconds=30),
    dag=dag)

inputsensor.set_downstream(next_step)
8
ebertbm

SLAまたはサービスレベルアグリーメントを使用すると、タスクが完了する必要があるタイムデルタを指定できます。現在時刻とexecution_start時刻の時間差が指定されたSLAを超える場合、タスクのSLAミスと見なされます。

ドキュメントから- https://airflow.Apache.org/concepts.html#slas

サービスレベルアグリーメント、またはタスクまたはDAGが成功するまでの時間は、タスクレベルでtimedeltaとして設定できます。その時間までに1つまたは多くのインスタンスが成功しなかった場合、アラートメールが送信され、SLAに失敗したタスクのリストが詳細に示されます。イベントはデータベースにも記録され、Web UIの[参照]-> [失敗したSLA]で利用できるようになり、イベントを分析して文書化できます。

タスクがSLAタイムデルタ以内に実行状態になると、予期された動作ではないにもかかわらず、気流がSLAミスをトリガーしないことがよくありました。ここでも同じことが言えます。 next_stepに30秒SLAを追加することをお勧めします。S3KeySensorが完了するまでに30秒以上かかるため、トリガーされると確信しています。

4
nightgaunt
'sla': timedelta(hours=2),

https://github.com/Apache/incubator-airflow/blob/master/airflow/example_dags/tutorial.py#L44

この行には、エアフローGitの例があります。

3
Manish Ranjan