Added includePipelineObservability flag - #29654
Conversation
❌ PR checklist incompleteThis PR cannot be merged until the following are addressed on its linked issue:
The fields live on the linked issue in the Shipping project (open the issue → right sidebar → Projects). After you set them, re-run this check (or push a commit) — issue/project changes do not re-trigger it automatically. Maintainers can bypass this check by adding the |
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
Code Review ✅ Approved 1 resolved / 1 findingsIntroduces an ✅ 1 resolved✅ Quality: Per-pipeline info log when observability disabled is noisy
OptionsDisplay: compact → Showing less information. Comment with these commands to change:
Was this helpful? React with 👍 / 👎 | Gitar |
…tion/pipelineServiceMetadataPipeline.json Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
…ub.com/NadezhdaNovotortseva/OpenMetadata into feature-include-pipeline-observability
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
Code Review ✅ Approved 1 resolved / 1 findingsIntroduces an ✅ 1 resolved✅ Quality: Per-pipeline info log when observability disabled is noisy
OptionsDisplay: compact → Showing less information. Comment with these commands to change:
Was this helpful? React with 👍 / 👎 | Gitar |
Describe your changes:
Added includePipelineObservability configuration flag to allow users to disable pipeline observability extraction during metadata ingestion.
Pipeline observability has a significant performance impact on Airflow ingestion — it queries DagRun history, processes lineage artifacts, and caches observability data for each pipeline. Disabling it when not needed can substantially reduce ingestion time for large Airflow deployments with many DAGs and runs.
Type of change:
Checklist:
Fixes <issue-number>: <short explanation>Fixes #<issue-number>above.Greptile Summary
Adds an
includePipelineObservabilityboolean flag (defaulttrue) toPipelineServiceMetadataPipelinethat lets users skip pipeline observability extraction during metadata ingestion, addressing performance concerns for large Airflow and dbt Cloud deployments.source_config.includePipelineObservability;get_table_pipeline_observabilityreturns immediately (no yields) when the flag isfalse."default": true, ensuring backward compatibility; the TypeScript generated type and locale documentation are updated accordingly.Confidence Score: 5/5
Safe to merge — the new flag defaults to true so existing deployments are unaffected, and both connectors correctly skip all observability work when set to false.
The change is a straightforward opt-out flag added symmetrically to both the Airflow and dbt Cloud connectors. The JSON schema default of true preserves backward compatibility, the Python generator early-return pattern is correct, and the new tests directly verify both the disabled and enabled code paths.
No files require special attention.
Important Files Changed
if includePipelineObservability:guard;get_table_pipeline_observabilityearly-returns correctly when disabled.pipeline_fqncontext assignment correctly left outside the guard;cache_key = Nonein the else branch is defensive but harmless since it is only consumed inside the same flag guard.includePipelineObservabilityfield added with"default": trueand a clear positive-framing description; backward-compatible.includeLineage.TestGetTablePipelineObservabilityclass with two tests: one confirming zero yields when disabled, one confirming a single empty map is yielded when enabled with no context data.test_include_pipeline_observability_disabledtest correctly asserts zero results and restores the original flag value viatry/finally.includePipelineObservability: falsein the pipeline metadata config fixture.$$sectionblock added forincludePipelineObservabilityin the correct position between Include Lineage and Enable Debug Logs.Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD A[yield_pipeline_details] --> B[_yield_pipeline_lineage] B --> C{includePipelineObservability?} C -- true --> D[Initialize context\ncurrent_pipeline_entity\ncurrent_table_fqns\ncurrent_dag_runs] C -- true --> E[Populate observability_cache\nper dag_run] C -- false --> F[Skip context init\nSkip cache population] B --> G[get_table_pipeline_observability] G --> H{includePipelineObservability?} H -- false --> I[return early\nyield nothing] H -- true --> J[Read context + cache] J --> K[Build PipelineObservability\nper table_fqn] K --> L[yield table_pipeline_map]%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%% flowchart TD A[yield_pipeline_details] --> B[_yield_pipeline_lineage] B --> C{includePipelineObservability?} C -- true --> D[Initialize context\ncurrent_pipeline_entity\ncurrent_table_fqns\ncurrent_dag_runs] C -- true --> E[Populate observability_cache\nper dag_run] C -- false --> F[Skip context init\nSkip cache population] B --> G[get_table_pipeline_observability] G --> H{includePipelineObservability?} H -- false --> I[return early\nyield nothing] H -- true --> J[Read context + cache] J --> K[Build PipelineObservability\nper table_fqn] K --> L[yield table_pipeline_map]Reviews (4): Last reviewed commit: "Merge branch 'feature-include-pipeline-o..." | Re-trigger Greptile