0
0
Apache Airflowdevops~30 mins

SLA misses and notifications in Apache Airflow - Mini Project: Build & Apply

Choose your learning style9 modes available
SLA Misses and Notifications in Airflow
📖 Scenario: You are managing data pipelines using Apache Airflow. You want to track when tasks miss their Service Level Agreement (SLA) deadlines and send notifications to the team.This helps ensure timely data processing and quick response to delays.
🎯 Goal: Build an Airflow DAG that defines tasks with SLAs and configures an SLA miss callback function to send notifications.You will create the DAG, set SLA times, define the notification function, and verify the SLA miss handling.
📋 What You'll Learn
Create an Airflow DAG with at least two tasks
Set SLA times for the tasks using sla parameter
Define a function called sla_miss_callback that accepts dag, task_list, blocking_task_list, slas, session parameters
Configure the DAG to use sla_miss_callback for SLA miss notifications
Print a message inside sla_miss_callback showing which tasks missed SLA
Trigger the DAG run and observe SLA miss notification output
💡 Why This Matters
🌍 Real World
In real data engineering teams, monitoring SLAs ensures pipelines run on time. SLA miss notifications help quickly fix delays to keep data fresh.
💼 Career
Understanding SLA misses and notifications is important for DevOps and data engineering roles managing workflow reliability and alerting.
Progress0 / 4 steps
1
Create the Airflow DAG and tasks
Create an Airflow DAG called sla_notification_dag with start_date set to datetime(2024, 1, 1) and schedule_interval set to timedelta(days=1). Inside the DAG, create two PythonOperator tasks named task_a and task_b that run simple Python functions printing 'Task A executed' and 'Task B executed' respectively.
Apache Airflow
Hint

Use DAG to create the DAG and PythonOperator for tasks. Define simple functions for python_callable.

2
Add SLA times to the tasks
Add an SLA of 10 minutes to task_a and 15 minutes to task_b by setting the sla parameter with timedelta(minutes=10) and timedelta(minutes=15) respectively in their PythonOperator definitions.
Apache Airflow
Hint

Add the sla argument inside the PythonOperator constructor for each task.

3
Define the SLA miss callback function
Define a function called sla_miss_callback that accepts parameters dag, task_list, blocking_task_list, slas, and session. Inside the function, print a message: "SLA missed for tasks: {task_list}" using an f-string.
Apache Airflow
Hint

Define the function with the exact name and parameters. Use an f-string to print the task list.

4
Configure the DAG to use the SLA miss callback and print output
Add the sla_miss_callback function to the sla_notification_dag by setting the sla_miss_callback parameter in the DAG constructor. Then, write a print statement outside the DAG that prints "SLA miss notification setup complete".
Apache Airflow
Hint

Pass sla_miss_callback=sla_miss_callback when creating the DAG. Use print() to show the confirmation message.