-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
[8.0 only] Should the alerting services plugin always be enabled? #90934
Comments
Pinging @elastic/kibana-alerting-services (Team:Alerting Services) |
cc @kobelb |
If there's still some requirement that customers be able to run Kibana without alerts "enabled", we could implement a "soft-disable" config key, that does not run alerts at all - perhaps disable CRUD operations or something as well, maybe still let you read though. Seems preferable to making other plugins treat alerting as an optional plugin, with all that entails. You can already "soft-disable" actions via the |
In the mean time would it make sense to update the wording in the documentation to make it clearer what this setting does?
The current wording makes it sound like this setting is a feature toggle that will disable Kibana alerting. When the reality is that this setting will disable the plugin and any other Kibana applications that depend on it. |
Based on #89584, I could not find explicit requirements to have our plugins disable-able today so I'm moving this discussion in the direction of removing Having dedicated Kibanas for alerting should be researched to ensure it addresses the requirements while thinking about concerns like having 0 Kibanas for alerting (by accident), situations where we'd be unable to schedule tasks / create rules in certain Kibanas, etc. |
I think "Kibanas that only run alerts" and "Kibanas that don't run alerts" kind of story is probably independent of whether the base plugins should be enabled. You'd probably still want the alerting UIs to work in "Kibanas that don't run alerts", you just don't run the tasks on those Kibanas. But of course, we're nowhere near figuring out how this would really work, so ... just my 2¢. |
++ I agree with everything mentioned here. |
To clarify here, it sounds like the plan is to:
Are we still discussing this, or are we happy with the above approach? |
I'm 👍 to say we're happy to remove the above approach. The reason we originally added support for
Yup that's the correct plan 👍 |
@kobelb @stacey-gammon @lukeelmers since deprecating the The most recent one is about preventing certain Kibana instances from running alerting or action plugin(s) because they don't want them running actions or alerting tasks. We've never supported dedicated alerting instances at this time because it comes with side effects where some plugins (like Observability) become completely disabled and also the non-alerting instances cannot enqueue rule or action tasks for other Kibanas to pick up. It seems removing the Question: With the context above, we will be making this a breaking change and cause some friction, is your recommendation to still move forward with the removal of |
Based on all of the information in this thread, it's my understanding that we do see benefit from preventing a specific Kibana node from executing alerts; however, we don't want to make all consumers of the alerting framework have to deal with the complexities of the plugin being entirely disabled. If this is this case, I think it'd make sense for us to remove Is this feasible? |
@mikecote Does it feel possible that users might want to keep rule execution but disable action execution? A config like |
Thanks @kobelb for input! After chatting with @chrisronline offline (chrisroffline?) we're still not sure how a customer could manage to make Kibana alerting work on dedicated instances. So we've decided to pursue the path of having an internal |
@YulNaumenko @ymao1 @pmuellr Does anyone else have a strong opinion about the above direction? |
General direction seems fine to me. w/r/t
Would it make sense to have a similar setting for rule types? Customers could then essentially disable running rules by setting the value to Then we'd be left with non-alerting tasks, and whether we'd want to disable those as well. Presumably task manager could have a similar setting (or does it already?). I'm also wondering about our alerting tasks that aren't rule / connector execution - api key invalidation, etc - I'm assuming these won't have issues if "alerting is disabled", but not sure. Also wondering what happens to rules already scheduled, when "alerting is disabled". Presumably the task docs still exist, the rules are still executed from a task manager POV, but then the rule executor would basically just return immediately. Could log a warning, maybe, since presumably the customer should go ahead and disable these. |
There's a potential unintended consequence to the ability of disabling specific task types on a Kibana instance - it can break features like "Run Now". For example:
User uses Stack Management to update an existing rule from In general, I worry this config could be naively used to create "alerting only kibana" instacnes and this will likely have unintended consequences. †: it might actually fail the update, but that still sucks, as the user randomly fails to update the rule 50% of the time. |
Ya, it's complicated. RFC? Another thing I happened to think of, is that whatever we come up with here to "disable alerting", could also potentially be used to prevent the "rando Kibana with different encryption key screws up all the ESOs". Like, you should really opt-in to alerting (or task manager) via some pre-arranged "id", so that rando Kibanas wouldn't actually upset alerting / task manager the way they do today. Not saying it HAS to, but it would be nice to solve that issue as well, and whatever we do in general regarding this issue might help :-) |
I'd like to revisit the problem statement as I understand it. ProblemA user is experiencing a performance issue in Kibana and isn't sure where it's coming from. They'd like to disable various features of Kibana to isolate the issue. Because we deprecated the ability to disable the various plugins alerting owns (with the goal to remove this functionality in 8.x), users are unable to determine if the performance issue stems from background work or something else. To ensure users still have a way to isolate performance problems, we need to expose a config (that is not a feature, not supported, and inherently unsafe to use for more than a short period of time while debugging) that allows them to stop all/some background tasks while they are debugging the performance issue. This config should exist at the task manager level so they have better control over what they want to disable (everything, just actions, just rules, some other background task, etc) ConcernsA concern is if users start using this config to enable different use cases (such as a dedicated Kibana to execute rules/actions). This is not the intended use case and therefore the config will explicitly state that it is "not safe" to use outside of debugging/troubleshooting. I know there are varying opinions about how much control we should give users to "shoot themselves in the foot" but I feel we can counteract that in two ways:
I'm fairly sure our current solution solves this well and I don't think we need to worry about edge cases, as we're not building an supported feature. Thoughts? |
I had a quick call with @chrisronline and @mikecote on Zoom, and I'll summarize my conclusions. I think that all of the proposed options are tolerable:
I will support whatever decision the team makes. |
We will be going with Option 1 as @kobelb mentioned above. The reason we are working on such a flag is what @chrisronline described here: #90934 (comment). The other discussion items provide use cases if this was an official feature but we don't have time or scope to develop an official feature for 7.16 as we remove the ability to make our plugins disableable. To mitigate the concerns, we've documented in the Task Manager's README that
This configuration would allow Task Manager to claim tasks and fail them during executions (due to being disabled). It would be preferable not to have any part of the task run.
The
In the
We've aimed our README documentation to mention that it will make Kibana behave in unexpected ways ( |
Hello, did this went anywhere?
We are having some performance issues regarding to alerts and would like to have dedicated Kibana instances to run the alert tasks because it is impacting the overall usage of Kibana. I couldn't find anything in the documentation about this, so I'm assuming that this not moved forward. Is this still in the roadmap? |
After discussing this internally recently, unfortunately, there is no plan to support that in the near future. |
Sounds like the The default setting is |
Hello @pmuellr, I'm not sure this would work, I couldn't find description for what tasks kibana executes when using the role But according to support it is not possible to have Kibana instances dedicates to Alerts only, even if I add more instances and do not put them behind our current LB of Kibana they would still run all tasks. Support also said that there are already some enhancement requests about this and they opened another one with the number We had a call with some Elastic Engineers today about other stuff and we also mentioned this, being able to uncouple the alerting functions from the other kibana functions. |
True, but only because there are other tasks (clean up, telemetry, etc) that run in the
With the default config, for on-prem, true. For ESS, you'll start getting background_node and ui nodes generated once you go past 8GB in stateful. For serverless, there are always separate background_task and ui nodes, which are autoscaled separately. |
And ya, sorry, we don't have much in the way of docs on this. I've opened issue add doc for node.roles #189116 to track ... |
This issue is private, but is this would also be the case for on-prem deployments? Because the answer I got from support is that this is not possible. Not sure now if I should reopen the case linking this thread to get more information. |
Yes, this works for on-prem as well. If you already had a support case open on this topic, I'd suggest re-opening or open a new one. Sorry about the inaccessible link. It doesn't really say much more than my comment on ESS / serverless above ... (figured I'd just duplicate the info here). |
There don't seem to be use cases where users of Kibana would want to disable any of our plugins. If we can't find a valid reason, it feels like we should prevent our plugins from being disabled by deprecating the setting (ex:
xpack.actions.enabled
) in 7.x and removing the capability in 8.0. This will make things much more straightforward and allow other plugins to make the alerting-related plugins a required dependency.The text was updated successfully, but these errors were encountered: