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
[Fleet] Label beta and experimental inputs #102816
Comments
Pinging @elastic/fleet (Team:Fleet) |
This will be possible only if we determine status based on input type only (logs/metrics), but not if we want to determine it by package and input type. We don't want Kibana to have knowledge of specific packages. In that case it is much better to have this defined on the package side. Edit: Also, I'm moving this to backlog. |
@nimarezainia @urso I believe the inputs are defined as GA, beta or experimental regardless of what package they are defined in. The documentation shows the beta messaging at the input level. For example, I see that the unix input is beta https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-input-unix.html. This would apply to all integrations that use the unix input? Can you confirm? |
@masci @sorantis Do we have any use cases for a different support level for each type of OS for a given input? For example, do we need an input to be GA on Linux and experimental on Windows? Note that if an entire integration is supported only on specific OSes (eg. the Windows integration), that can be communicated at the integration level |
Can't think of any OS-specific differences but as you pointed out in earlier in the issue we do have multiple cases where a module is GA but some of the metricsets or filesets are still in Beta. |
Another use case is that an integration package can define whether an input is beta or not. This means the badge we show should be the minimum of the integration package release status and the elastic agent input release status. For example, the Splunk input is experimental but the Elastic Agent input is not. |
Agreed that we need to mark and make it obvious which inputs are Beta - despite the status of the integration they enable (or are utilized by). Right now I don't think there is a single location that lists all the inputs and whether they are GA or Beta. I think we need such source of truth in order to be able to build what's being requested here. @andresrc @ruflin : Your thoughts on this? is it worth creating a file in our repo that does this? and the fleet team could reference that to determine whether the "Beta" keyword is required? |
We have that information at the dataset level, afair, and that should be our source of truth. If a dataset relies on an non-GA input, it should be marked as non-GA |
I would rely on the package developer to make the decision. If a dataset relies on a beta input, it should also be beta. But it can also be that a dataset relies on an input that is GA but it is still beta. To take this further, it can also be that a dataset itself is GA but a new config option that was added is in beta. There is another scenario here around versions. Lets say input The user itself should not care about if an input is GA but only if the dataset is GA. |
That's a better explanation of what I meant. Agree |
@ruflin in order for the package developer to release the Is it an acceptable compromise to force users to upgrade their agent to get an updated package? Also, should we trust package authors (particularly third party ones) to set their datasets to the release status of agent with appropriate constraints? The advantage of decoupling the input release status from the dataset release status is that we don't need to force upgrades for users, and we don't need to trust package developers to get it right. We can enforce it on the platform (Kibana) side. I'm curious what you think. I just want to make sure we consider the pros/cons of the options. |
I think the problem is even more complicated than that as the users will have over time multiple versions of Elastic Agent running likely even under a single policy. We likely need to separate two parts:
We likely need to get into requiring a specific version of the Elastic Agent at some point as this is not only about beta / GA but it might also be that an input does not exist in certain Elastic Agent versions yet or even is blocked in the capabilities. Should we open a parallel thread to discuss this further? |
Problem
Currently, our integrations page shows GA, beta or experimental for each integration. However, each input in Elastic Agent can be GA, beta or experimental. This will be confusing to users because if they see an integration labeled as GA, they'd expect the inputs to be GA as well. To avoid setting incorrect expectations, we need to show our support policy at a lower level of granularity.
We label each input as experimental or beta in our documentation, but users do not see this without leaving the product and there are no links to the input docs. It is not easily discoverable when adding or editing an integration.
Solution
Let's update our integration policy editor page to include a label next to each beta or experimental input. For example, if the input apache/metrics is beta, here is what we could show:
Ideally, we'll define the support level for inputs in Kibana as opposed to in the package spec because the agent is versioned with the stack, and it won't require package authors to remember to add or update it.
Also, the input support level depends on the agent version. We generally recommend (but don't require) that users upgrade their Elastic Agents to the Kibana version. We could include some hovertext to be more explicit:
Open questions
CC @nimarezainia @andresrc @urso @ruflin
The text was updated successfully, but these errors were encountered: