convalesce-emit-airflow
Forward Airflow run events to Convalesce, unchanged.
Install
pip install convalesce-emit-airflow
That is the whole integration. The package registers a listener through
Airflow's airflow.plugins entry point, so nothing in a DAG changes.
Set CONVALESCE_INGEST_KEY on the worker and every task instance and
dag run event is forwarded as it happens.
Supported
Airflow 2.5 through 3.0 in this one release, on Python 3.9 and later. The listener generates its hooks from the hookspecs of the Airflow it runs in, so a release that adds or removes a hook argument cannot break it. Airflow passes a task's failure message to listeners from 2.10.
Verified on real installs: see version-support.md.
OpenLineage
Where Airflow's OpenLineage provider
(apache-airflow-providers-openlineage) is installed and OpenLineage is not
configured, the plugin points the provider at its own transport, and each
lineage event the provider builds (tables read and written, parsed SQL,
columns) is forwarded as observation openlineage. It does this by setting
AIRFLOW__OPENLINEAGE__TRANSPORT when the plugin loads.
On Airflow 2.10 and later it also registers Airflow's hook lineage reader, so files and tables a hook touches from inside a task (S3, GCS, object storage, SQL run through a hook) reach the same events.
To link a Spark job an Airflow task submits to that task, set
AIRFLOW__OPENLINEAGE__SPARK_INJECT_PARENT_JOB_INFO=true. The provider then
names the task as the Spark job's parent; it changes the job's Spark
configuration, so it is left for you to switch on.
It never replaces a setup you made: any of [openlineage] transport,
[openlineage] config_path, [openlineage] disabled, OPENLINEAGE_URL,
OPENLINEAGE_CONFIG, OPENLINEAGE_DISABLED, OPENLINEAGE__TRANSPORT__* or an
openlineage.yml leaves OpenLineage as it was. To use a transport of your
own and forward to Convalesce too, name this one in it:
{"type": "convalesce_emit_airflow.openlineage.ConvalesceTransport"}
Set CONVALESCE_OPENLINEAGE=false to switch this off.
Configure
CONVALESCE_INGEST_KEY, CONVALESCE_ENDPOINT, CONVALESCE_DRY_RUN and the
rest are read from the environment: see
convalesce-emit.
Release files for convalesce-emit-airflow 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| convalesce_emit_airflow-0.1.5.tar.gz | 91.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| convalesce_emit_airflow-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 165.3 kB
Release files / convalesce_emit_airflow-0.1.5.tar.gz
| Download URL | convalesce_emit_airflow-0.1.5.tar.gz |
|---|---|
| Size | 91.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1cb68b8deae7d3e56dacec8903138adca7b76b4c0c0540e2c5b1f1c694854541
|
|
BLAKE2b-256 checksum How to use checksums |
f35a86fe6791b872d32c4fd589856af25cbcac9a9eafea396e544564efe4400a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.
Transparency logRelease files / convalesce_emit_airflow-0.1.5-py3-none-any.whl
| Download URL | convalesce_emit_airflow-0.1.5-py3-none-any.whl |
|---|---|
| Size | 74.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8c2110c0f2884dcd4f3c7afabb4fed5b6bd69b8fcab11d42923e1708a2ffc12b
|
|
BLAKE2b-256 checksum How to use checksums |
5a6d8b9bfc35a6323acea1c1b51ebbfb6950028b065356ac7b53b19ab7e3f62a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.
Transparency log