Skip to content

feat: disable pipeline optimization - #227

Merged
aa1ex merged 1 commit into
kaasops:mainfrom
aa1ex:feat/disable-pipeline-optimization
Jun 23, 2026
Merged

aa1ex merged 1 commit into
kaasops:mainfrom
aa1ex:feat/disable-pipeline-optimization

Conversation

@aa1ex

@aa1ex aa1ex commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Config optimization (#222) collapses the kubernetes_logs sources of a signature group into one shared source. A sink stuck with the default buffer.when_full: block backpressures that shared source and stalls every pipeline of the group (head-of-line blocking).

This adds a per-pipeline opt-out: a (Cluster)VectorPipeline annotated vector-operator.kaasops.io/config-optimization: disabled keeps its source standalone while the rest of the group still collapses. It is the same annotation used on the Vector CR, scoped to one pipeline. The annotation is folded into the pipeline hash so toggling it rebuilds the agent config, with omitempty so pipelines without it keep a stable hash and are not re-validated on upgrade.

It also adds an optional, off-by-default PrometheusRule (prometheusRule.enabled) with two alerts: VectorOptimizedSourceStalled (the shared source stalled) and VectorSinkFailing (names the failing HTTP sink by component_id). Both need spec.agent.internalMetrics. The trade-off, mitigations, and a pre-enable check are in docs/config-optimization.md.

The feature is off by default and behavior is unchanged when no pipeline is annotated. Toggling the annotation re-reads that pipeline's namespace once; this is a live config reload, not a Secret-name change, so checkpoint migration does not cover it.

@aa1ex aa1ex self-assigned this Jun 23, 2026
@aa1ex
aa1ex merged commit daa4ec7 into kaasops:main Jun 23, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant