
Creating Openlineage Extractors
When Airflow's built-in OpenLineage support doesn't cover your operators, you need custom extractors. This skill walks through two approaches: adding OpenLineage methods directly to operators you control (the recommended path), or building standalone extractors for third-party operators you can't modify. The guide includes specifics on capturing column-level lineage, runtime metadata like row counts, and registration via airflow.cfg. It's honest about extractors being harder to maintain than the methods approach. If you're running custom operators or need lineage from providers that don't ship with extractors, this covers the implementation patterns and shows you which extraction hooks fire when.
- skills.sh installs
- 960
- GitHub stars
- 459
- last updated
- Aug 21, 2026
Install
$ npx -y skills add astronomer/agents --skill creating-openlineage-extractors --agent claude-codeInstalls into .claude/skills of the current project.
Files
Creating OpenLineage Extractors
This skill guides you through creating custom OpenLineage extractors to capture lineage from Airflow operators that don't have built-in support.
Reference: See the OpenLineage provider developer guide for the latest patterns and list of supported operators/hooks.
When to Use Each Approach
| Scenario | Approach |
|---|---|
| Operator you own/maintain | OpenLineage Methods (recommended, simplest) |
| Third-party operator you can't modify | Custom Extractor |
| Need column-level lineage | OpenLineage Methods or Custom Extractor |
| Complex extraction logic | OpenLineage Methods or Custom Extractor |
| Simple table-level lineage | Inlets/Outlets (simplest, but lowest priority) |
Important: Always prefer OpenLineage methods over custom extractors when possible. Extractors are harder to write, easier to diverge from operator behavior after changes, and harder to debug.
On Astro
Sponsors
Details
- Repository
- github.com/astronomer/agents
- First seen
- May 16, 2026
More from astronomer/agents
All 24- Cosmos Dbt Fusion925
- Warehouse Init841
- Deploying Airflow817
- Troubleshooting Astro Deployments655
- Airflow Plugins622
- Managing Astro Deployments595
- Blueprint584
- Init176
- Managing Astro Local Env1.6K
- Airflow1.5K
- Analyzing Data1.4K
- Authoring Dags1.3K
- Debugging Dags1.2K
- Testing Dags1.2K
- Migrating Airflow 2 To 31.1K
- Setting Up Astro Project1.1K
- Tracing Upstream Lineage1.1K
- Profiling Tables1.1K
- Tracing Downstream Lineage1.1K
- Checking Freshness1K
- Annotating Task Lineage1K
- Cosmos Dbt Core990
- Airflow Hitl980