Airflow can be set up to send errors to Sentry.
First you must install sentry requirement:
pip install 'apache-airflow[sentry]'
After that, you need to enable the integration by setting the
sentry_on option in the
[sentry] section to
SENTRY_DSN to your configuration file e.g.
[sentry] section. Its template resembles the following:
[sentry] sentry_on = True sentry_dsn = http://firstname.lastname@example.org/123
If this value is not provided, the SDK will try to read it from the
SENTRY_DSN environment variable.
before_send option can be used to modify or drop events before they are sent to Sentry. To set this option, provide a dotted path to a before_send function that the sentry SDK should be configured to use.
[sentry] before_send = path.to.my.sentry.before_send
transport option can be used to change the transport used to send events to Sentry, and possibly other Systems. To set this option, provide a dotted path to a Transport class that the sentry SDK should be configured to use.
[sentry] transport = path.to.my.sentry.Transport
You can supply additional configuration options based on the Python platform via
[sentry] section. Unsupported options:
Impact of Sentry on Environment variables passed to Subprocess Hook¶
When Sentry is enabled, by default it changes the standard library to pass all environment variables to
subprocesses opened by Airflow. This changes the default behaviour of
airflow.hooks.subprocess.SubprocessHook - always all environment variables are passed to the
subprocess executed with specific set of environment variables. In this case not only the specified
environment variables are passed but also all existing environment variables are passed with
SUBPROCESS_ prefix added. This happens also for all other subprocesses.
This behaviour can be disabled by setting
default_integrations sentry configuration parameter to
False which disables
StdlibIntegration. However, this also disables other default integrations,
so you need to enable them manually if you want them to remain enabled
(see Sentry Default Integrations).
[sentry] default_integrations = False