Service Level Agreements (SLAs)

Service Level Agreements (SLAs) define expectations for data product delivery and freshness. Create SLAs to monitor whether your data products meet business requirements and configure alerts to notify your team when SLAs are at risk or violated. SLAs check for a successful run or update of the final assets in a data product.

Data products with tables as their final assets do not support SLAs.

Create an SLA

Astro allows you to create Freshness, Timeliness and Custom SLAs on your data products. Based on the timeliness or freshness expectations defined in your SLAs, Astro uses SLA success rates to send proactive alerts and generate insights into your data pipelines.

  1. In the Data Products page, click the specific data product for which you want to create an SLA.
  2. Click the SLA Evaluations tab and click + Add SLA.
  3. Add a Name for your SLA and optionally add a Description.
  4. Choose a Template:
    • Timeliness: Data Product updates by a specific time. Define the window of time by choosing Days of the week, Verification time, and Lookback period.

    Timeliness SLAs only support Standard Time. If you want Local Time support, you must adjust the SLA’s UTC time when the time changes from Standard Time to Daylight Savings Time or from Daylight Savings Time to Standard Time. All evaluation times are in UTC, consistent with Airflow.

    • Freshness: Data Product updates on a certain frequency. Configure this SLA by defining a Freshness Policy by the number of minutes, hours, or days.
    • Custom: Configure your own SLA parameters with full control over evaluation schedules and freshness windows. For example, you can set an SLA to check whether a retail reporting pipeline ran on the first 10 days of every fiscal quarter with the following cron expression: 0 0 1-10 1,4,7,10 *
  5. Configure the Evaluation Schedule, which defines how often the SLA checks for a successful run of the final assets :
    • For simple schedules, use the predefined options
    • For complex schedules, select Cron from the dropdown and enter a cron expression. The UI will display a human-readable translation of your cron expression and show the next scheduled evaluation time.
    Evaluation schedule guidelines
    • The minimum interval is 15 minutes to prevent excessive evaluation frequency.

    • The maximum freshness window is 31 days.

    • Evaluation schedules longer than 1 day evaluate on the nth day of the month and begin on the first of the month. For example, an evaluation schedule of 9 days set on December 31 will evaluate on Jan 1st, Jan 10th, Jan 19th, Jan 28th, Feb 1st, Feb 10th, Feb 19th, Feb 28th, March 1st, etc.

  6. Set the Freshness Window: Define how far back to look for successful runs before each evaluation time.
  7. Click Create SLA.

After you create an SLA, you can configure alerts and proactive alerts.

Create an alert

After you create an SLA, Astro keeps a record of the rate at which your data product hits or misses the SLA. You must configure an Alert or a Proactive Alert to receive notifications when your pipeline experiences an SLA miss or when an upstream process might cause an SLA miss or a failure.

  1. In the Data Products page, click the specific data product you want to create an SLA for.
  2. Click the Alerts tab and click + Add Alert.
  3. Choose the Type of alert and Severity. The following alert types are available:
    • Data Product SLA Violation: Send an alert when a data product asset has violated its SLA definition.
    • Data Product Proactive SLA: Astro monitors the upstream dependencies of the data product assets, and proactively sends an alert if delays in the upstream dependencies might eventually cause SLA misses.
    • Data Product Proactive Failure: Send an alert when a dependent asset upstream of your data product has failed.
  4. Define the conditions that the alert applies to. These conditions vary depending on the type of alert you want to set up.
  5. Select or add a Notification Channel where you want to send your alert. For more information about configuring notification channels, see Alert Notification Channels.
  6. (Optional) Customize the alert name.
  7. Click Create alerts.