Skip to content

Add new facility for introducing breaking changes to the dataplane - #47396

Open
yanavlasov wants to merge 5 commits into
envoyproxy:mainfrom
yanavlasov:breaking-changes-tracker
Open

yanavlasov wants to merge 5 commits into
envoyproxy:mainfrom
yanavlasov:breaking-changes-tracker

Conversation

@yanavlasov

@yanavlasov yanavlasov commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

Added the BreakingChangesTracker class to track and observe breaking changes in Envoy.
Operators can enable observability for breaking changes via the
envoy.reloadable_features.breaking_change_observability_enabled runtime flag and log observed
breaking changes in access logs using %FILTER_STATE(envoy.breaking_changes_tracker:PLAIN)%.

Risk Level: low
Testing: unit tests
Docs Changes: yes
Release Notes: yes
Platform Specific Features: no

Part of #47277

@repokitteh-read-only

Copy link
Copy Markdown

As a reminder, PRs marked as draft will not be automatically assigned reviewers,
or be handled by maintainer-oncall triage.

Please mark your PR as ready when you want it to be reviewed!

🐱

Caused by: #47396 was opened by yanavlasov.

see: more, trace.

Signed-off-by: Yan Avlasov <yavlasov@google.com>
@yanavlasov
yanavlasov force-pushed the breaking-changes-tracker branch from d021774 to b7eb07d Compare September 14, 2026 15:58
Signed-off-by: Yan Avlasov <yavlasov@google.com>
@yanavlasov
yanavlasov marked this pull request as ready for review September 14, 2026 16:03
@repokitteh-read-only

Copy link
Copy Markdown

CC @envoyproxy/runtime-guard-changes: FYI only for changes made to (source/common/runtime/runtime_features.cc).

🐱

Caused by: #47396 was ready_for_review by yanavlasov.

see: more, trace.


"Breaking change" is a code change that may have observable impact on existing production traffic.
When introducing a breaking change in Envoy, it desirable to surface in observability potential impact of
enabling the chanmge. Operators can assess the impact via access logs and metrics before older behaviors

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
enabling the chanmge. Operators can assess the impact via access logs and metrics before older behaviors
enabling the change. Operators can assess the impact via access logs and metrics before older behaviors

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

layers:
- name: static_layer
static_layer:
envoy.reloadable_features.breaking_change_observability_enabled: true

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems like this should be configuration, not a runtime flag

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you suggesting a new configuration element? I piggybacked on runtime since it already integration with all means of plumbing overrides. Static, RTDS and command line.

std::optional<std::string> BreakingChangesTracker::serializeAsString() const {
// The likely case is that there are 0 defects. Sometimes there will be 1.
// Very rarely, there will be 2.
absl::InlinedVector<absl::string_view, 1> defects;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't like the name defects; it implies something is wrong. Maybe changes?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

-----------------------------

"Breaking change" is a code change that may have observable impact on existing production traffic.
When introducing a breaking change in Envoy, it desirable to surface in observability potential impact of

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How long will we make this observable? The same time period as the existing runtime flag policy?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added note on deprecation policy.

Signed-off-by: Yan Avlasov <yavlasov@google.com>
Signed-off-by: Yan Avlasov <yavlasov@google.com>
Signed-off-by: Yan Avlasov <yavlasov@google.com>
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.

2 participants