Airflow'da SLA'lar ve raporlama

Python ile Apache Airflow'a Giriş

Mike Metzger

Data Engineer

SLA'lar

SLA nedir?

  • SLA, Hizmet Düzeyi Anlaşmasıdır
  • Airflow'da bir görev veya DAG'ın çalışması beklenen süreyi belirtir
  • SLA Kaçırma, görev/DAG beklenen süreyi aşarsa oluşur
  • SLA kaçırılırsa e-posta gönderilir ve günlük kaydı tutulur
  • Kaçırılan SLA'ları web arayüzünde görebilirsiniz
Python ile Apache Airflow'a Giriş

SLA Kaçırmaları

  • Browse altında: SLA Misses

SLA Kaçırmaları görünümü

Python ile Apache Airflow'a Giriş

SLA tanımlama

  • Görev üzerinde 'sla' argümanı ile

    task1 = BashOperator(task_id='sla_task', 
                       bash_command='runcode.sh',
                       sla=timedelta(seconds=30),
                       dag=dag)
    
  • default_args sözlüğünde

    default_args={
     'sla': timedelta(minutes=20),
     'start_date': datetime(2023,2,20)
    }
    dag = DAG('sla_dag', default_args=default_args)
    
Python ile Apache Airflow'a Giriş

timedelta nesnesi

  • datetime kitaplığındadır
  • from datetime import timedelta ile içe aktarılır
  • days, seconds, minutes, hours, weeks argümanlarını alır
    timedelta(seconds=30)
    timedelta(weeks=2)
    timedelta(days=4, hours=10, minutes=20, seconds=30)
    
Python ile Apache Airflow'a Giriş

Genel raporlama

  • Başarı / başarısızlık / hata seçenekleri
  • default_args sözlüğündeki anahtarlar
default_args={
  'email': ['[email protected]'],
  'email_on_failure': True,
  'email_on_retry': False,
  'email_on_success': True,
  ...
}
  • DAG'lerde EmailOperator ile
Python ile Apache Airflow'a Giriş

Hadi pratik yapalım!

Python ile Apache Airflow'a Giriş

Preparing Video For Download...