SLAs und Reporting in Airflow

Einführung in Apache Airflow mit Python

Mike Metzger

Data Engineer

SLAs

Was ist eine SLA?

  • SLA steht für Service Level Agreement
  • In Airflow: die erwartete Laufzeit einer Task oder eines DAG
  • Ein SLA Miss liegt vor, wenn Task/DAG die erwartete Zeit überschreitet
  • Bei einem Miss wird eine E-Mail versendet und ein Log gespeichert
  • SLA-Misses siehst du im Web-UI
Einführung in Apache Airflow mit Python

SLA Misses

  • Unter Browse: SLA Misses

Ansicht SLA Misses

Einführung in Apache Airflow mit Python

SLAs festlegen

  • Über das Argument 'sla' an der Task

    task1 = BashOperator(task_id='sla_task', 
                       bash_command='runcode.sh',
                       sla=timedelta(seconds=30),
                       dag=dag)
    
  • Über das Dictionary default_args

    default_args={
     'sla': timedelta(minutes=20),
     'start_date': datetime(2023,2,20)
    }
    dag = DAG('sla_dag', default_args=default_args)
    
Einführung in Apache Airflow mit Python

timedelta-Objekt

  • In der Bibliothek datetime
  • Import mit from datetime import timedelta
  • Argumente: days, seconds, minutes, hours, weeks
    timedelta(seconds=30)
    timedelta(weeks=2)
    timedelta(days=4, hours=10, minutes=20, seconds=30)
    
Einführung in Apache Airflow mit Python

Allgemeines Reporting

  • Optionen für Success/Failure/Error
  • Keys im Dictionary default_args
default_args={
  'email': ['[email protected]'],
  'email_on_failure': True,
  'email_on_retry': False,
  'email_on_success': True,
  ...
}
  • In DAGs über den EmailOperator
Einführung in Apache Airflow mit Python

Lass uns üben!

Einführung in Apache Airflow mit Python

Preparing Video For Download...