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)
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秒以上かかるため、トリガーされると確信しています。
'sla': timedelta(hours=2),
https://github.com/Apache/incubator-airflow/blob/master/airflow/example_dags/tutorial.py#L44
この行には、エアフローGitの例があります。