-
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
Lens powered by ES|QL - technical spike #192075
Comments
Pinging @elastic/kibana-visualizations (Team:Visualizations) |
When we have some Lens examples running with ES|QL let's test this scenario: #186366. If this problem doesn't exist anymore in Lens, we can close the issue, otherwise, we will need to work on it at some point to fix it. cc @stratoula @markov00 . |
Updates on the current Technical Spike:
Answers the spike questions:
Each operation on a Lens form_based operation can be translated to ES|QL command. Whenever the command is unavailable or not supported (like timeshift) the entire query generation can be routed to use DSL instead.
From the POC to a production-ready version we need to:
There isn't an overhead that blocks us from keeping both systems in parallel. I also suggest adding a switch (better in the kibana.yml or per space) that allows an admin to switch off the ES|QL generation in Lens if issues arise as an escape hatch. In this way, we can start delivering minimal functionalities and add them whenever they are ready in ESQL without the need for a full one-shot switch on such a huge code surface. I also propose to switch off DSL whenever we can fully trust our ES|QL transforms.
There are differences between the current Kibana auto bucket logic and the provided functionality in ES|QL: In ES|QL you specify the target number of buckets, if you increase/decrease this parameter, the automatically computed granularity will change
You can specify a WHERE clause + a fixed bucket size to get the fixed interval
Because the first command produces different results than ours (even if we set the same amount of buckets it could result in different intervals), we can use the second command here and we can specify our computed interval. The only identified problem for now with this strategy will appear whenever the ES|QL query is shown to the Lens user: the query will appear with a fixed interval that breaks the "auto-interval" logic. In my horizon, I see the ES|QL feature parity with Lens closer in time than the ES|QL editing experience in Lens (clicky clicky + esql). If that is the case, whenever we will have a feature parity status, we can drop the DSL aggregations and replace completely the auto-interval logic with the default one used in ES|QL, removing completely the requirement of having an ES|QL variable for that. |
@markov00 is this a truly fixed interval or a "minimum interval" as it is working in Lens today? If it is a fixed interval, then it will produce different results for large time ranges. |
Is a truly fixed interval. We are going to discuss this with @stratoula and @ppisljar this week to find the right solution for that |
Description
In a future state all Lens visualizations should be powered by ES|QL. We need to draft a plan of how this is going to work and how much it will take.
Research questions
note: multi-layer is out of scope for this spike
Some more in-depth implementation questions in this document
Timeboxed in 1 week
The text was updated successfully, but these errors were encountered: