Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[config/confighttp] IncludeMetadata is experimental #9381

Closed
atoulme opened this issue Jan 24, 2024 · 5 comments · Fixed by #10685
Closed

[config/confighttp] IncludeMetadata is experimental #9381

atoulme opened this issue Jan 24, 2024 · 5 comments · Fixed by #10685
Labels
area:config release:required-for-ga Must be resolved before GA release

Comments

@atoulme
Copy link
Contributor

atoulme commented Jan 24, 2024

From confighttp.go:

// IncludeMetadata propagates the client metadata from the incoming requests to the downstream consumers
// Experimental: *NOTE* this option is subject to change or removal in the future.
IncludeMetadata bool `mapstructure:"include_metadata"`
@TylerHelmuth
Copy link
Member

TylerHelmuth commented Feb 26, 2024

The origin of the Experiment designation is here.

On one hand it has been 2 years and requests to include only certain headers has not surfaced. The feature has been working as needed via the headerssetterextension since v0.58.0 (August 2022).

On the other hand, the API still doesn't let us add this feature in the future without either doing a breaking change or adding a new section, which spreads the feature out between 2 root configuration options.

Changing this now would end up being a user-facing configuration breaking change, not only an API breaking change. Seeing as we haven't had user requests for this feature I am against removing IncludeMetadata so close to stability. If, after a 1.0 release, a specific need to filter headers arises, we could add a new configuration interface and deprecate IncludeMetadata. Then we could remove IncludeMetadata in an eventual 2.0 release.

We could lean on the Experimental flag to deprecate IncludeMetadata now, add a new configuration interface, and remove IncludeMetadata after 1.0.

@TylerHelmuth
Copy link
Member

Related: client lists client.Info.Metadata as experimental from the same PR. Whether or not we stick with the IncludeMetadata config interface I think client.Info.Metadata is here to stay. I think we could safely drop the Experimental warning from that struct.

@mx-psi
Copy link
Member

mx-psi commented Feb 29, 2024

I would vote for stabilizing the client module before we decide on this

mx-psi pushed a commit that referenced this issue Mar 27, 2024
**Description:** 
Removes the `experimental` tag from `Metadata`. This feature has been
used in the headerssetter extension since Aug 2022.

**Link to tracking Issue:** 
Relates to
#9381
Related to
#9795
@jsirianni
Copy link
Member

We (observIQ) are using this and have a customer using it as well. It would be great if include_metadata could be kept around.

@atoulme
Copy link
Contributor Author

atoulme commented Jul 21, 2024

Related: client lists client.Info.Metadata as experimental from the same PR. Whether or not we stick with the IncludeMetadata config interface I think client.Info.Metadata is here to stay. I think we could safely drop the Experimental warning from that struct.

I agree, since it's no longer experimental on client, it should no longer be experimental in confighttp and configgrpc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:config release:required-for-ga Must be resolved before GA release
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

4 participants