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

Proposal: gate non-stable features behind a flag #6063

Closed
rfratto opened this issue Jan 8, 2024 · 1 comment · Fixed by #6523
Closed

Proposal: gate non-stable features behind a flag #6063

rfratto opened this issue Jan 8, 2024 · 1 comment · Fixed by #6523
Assignees
Labels
flow Related to Grafana Agent Flow frozen-due-to-age Locked due to a period of inactivity. Please open new issues or PRs if more discussion is needed. proposal Proposal or RFC proposal-accepted Proposal has been accepted.

Comments

@rfratto
Copy link
Member

rfratto commented Jan 8, 2024

Background

Non-stable features are documented as such, but there's nothing preventing a user from using the feature. This can be a problem if a user didn't realize the feature was non-stable, and would either prefer to only use stable features or are running the agent in a corporate environment where non-stable features aren't permitted.

This proposal outlines an approach to help users avoid accidentally using features with an undesired stability level.

Proposal

I propose a new flag to grafana-agent run which specifies the minimum stability of features that can run in that process:

--stability.level=experimental # allow usage of experimental, beta, and stable features 
--stability.level=beta         # allow usage of beta and stable features 
--stability.level=stable       # allow usage of stable features 

If a Flow config file or any loaded module uses a feature at a level lower than the minimum stability level, that config file or module should fail to load.

As part of this proposal, code will need to be updated to reflect the stability level of various things. To start with, the following will support stability levels:

  • Components
  • Component blocks
  • Component attributes
  • Services

In the future, the stability concept may be extended to include language-level features or standard library functions in River.

If this proposal is accepted, the default value should be --stability.level=experimental for backwards compatibility with existing users. The default value should be changed to --stability.level=stable alongside the eventual 1.0 release.

@rfratto rfratto added proposal Proposal or RFC flow Related to Grafana Agent Flow labels Jan 8, 2024
@rfratto rfratto added the proposal-accepted Proposal has been accepted. label Feb 1, 2024
@rfratto
Copy link
Member Author

rfratto commented Feb 1, 2024

Proposal has been accepted following an offline vote by maintainers.

@thampiotr thampiotr self-assigned this Feb 26, 2024
@github-actions github-actions bot added the frozen-due-to-age Locked due to a period of inactivity. Please open new issues or PRs if more discussion is needed. label Mar 29, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 29, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
flow Related to Grafana Agent Flow frozen-due-to-age Locked due to a period of inactivity. Please open new issues or PRs if more discussion is needed. proposal Proposal or RFC proposal-accepted Proposal has been accepted.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants