Skip to main content

Priority Tags for Airflow Dags

Project description

airflow-priority

Priority Tags for Airflow Dags

Build Status codecov License PyPI

Overview

This repo provides Airflow Plugins for priority-driven DAG failure alerting. In layman's terms, one need only add a tag to their DAG in P1, P2, P3, P4, P5, and that dag will send a notification to:

Where P1 corresponds to highest priority, and P5 corresponds to lowest.

Installation

You can install from pip:

pip install airflow-priority

Or via conda:

conda install airflow-priority -c conda-forge

Integrations

Integration Metric / Tag
New Relic airflow.custom.priority.p{1,2,3,4,5}.{failed,succeeded,running}
Datadog airflow.custom.priority.p{1,2,3,4,5}.{failed,succeeded,running}
Slack N/A

New Relic

Create a new New Relic API Key following their guide. Note that the type should have INGEST - LICENSE.

Copy this api key into your airflow.cfg like so:

[priority.newrelic]
api_key = the api key

Under Query Your Data in the New Relic UI, you can create a query for the new custom metric:

SELECT sum(`airflow.custom.priority.p1.failed`) FROM Metric FACET dag

With this, you can now create a custom alert. For fast alerting, we recommend the following parameters:

Window duration - 30 seconds
Sliding window aggregation - Disabled
Slide by interval - Not set
Streaming method - Event timer
Timer - 5 seconds

Fill data gaps with - None
Evaluation delay - Not set

Thresholds: Critical: Query result is above or equals 1 at least once in 1 minute

Slack

Configure a new slack application following the Slack Quickstart.

Ensure your application has the following scopes for public and private channel access:

  • channels:read
  • groups:read
  • chat:write

Enable and install your Slack application into your workspace, and add it as an integration in whatever channel you want it to post.

Copy your Slack application's Oauth Token (starting with xoxb-) and your desired channel into your airflow.cfg like so:

[priority.slack]
token = xoxb-...
channel = channel-name

Datadog

Create a new Datadog api key following their guide.

Copy this api key into your airflow.cfg like so:

[priority.datadog]
api_key = the api key

Ensure your dags are configured with tags and run some, it can often be convenient to have an intentionally failing P1 dag to test the integration. With this, you can now create custom monitors for the tags.

License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

airflow_priority-0.1.0.tar.gz (14.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

airflow_priority-0.1.0-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file airflow_priority-0.1.0.tar.gz.

File metadata

  • Download URL: airflow_priority-0.1.0.tar.gz
  • Upload date:
  • Size: 14.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.9

File hashes

Hashes for airflow_priority-0.1.0.tar.gz
Algorithm Hash digest
SHA256 75808039533695ac0beb2fd540a55f5e8e13ef5263ac62d1eaa891b47859ef89
MD5 fbb998c6aaa3d761de8462f1c4a81e4d
BLAKE2b-256 e2b4c5917328d953ed4fd67e080fca7436546442eeac4907e88a6452df85c884

See more details on using hashes here.

File details

Details for the file airflow_priority-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for airflow_priority-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 41216eabbdb7d3e13dbb39c35f2da79eeba647b976849b1df2366e79aad37402
MD5 2ed906b5cd96d19c44e720b28564c9fd
BLAKE2b-256 59a906399e5004673731009be982d30be2f3cb24f6134848ff1f7f6b231de3aa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page