You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, our querying infrastructure (a.k.a. "courier") has been around since the early days of 4.x. Over time, lots of functionality has been stuffed/mashed in, not always considering best practices. As a result, courier has lots of complicated functionality and is a cause of a lot of technical debt. Also, it doesn't have a simple or stable API, so usage by core and 3rd party plugins is limited, resulting in a disjointed system for data access across plugins. (Things like Timelion and TSVB don't use courier.)
There are several steps we will take in refactoring courier:
(In progress: #39963) Kibana users & admins would like queries to be cancellable in many situations:
On long queries (perhaps after prompting user)
On window unload/route change
On resubmit/refresh/update/time range change/agg config change/panel config change/panel resize
Elasticsearch has this ability, yet courier has not supported it. We'd like to add these capabilities to courier and allow apps to take advantage of query cancellation.
Refactor search source to use the new server APIs and remove Elasticsearch proxy (7.5)
We will refactor the existing search source to use the new server-side APIs introduced above, which will remove the need for our Elasticsearch proxy, at which point we will remove it. In this step we will still be using our existing filter/agg config models.
Switch management of index patterns over to the new data service.
Switch vega over to using the new data service.
Remove usage of es service to keep session alive in security plugin.
Add support for query progress (7.6, pending Elasticsearch ability to do so)
As soon as Elasticsearch supports it, we would like to expose the ability to provide consumers with the current progress (as a percentage of complete) of the query execution.
Create a high-level API with abstractions (7.7)
Refactor & replace the agg config model with something better (TBD)
Create Typescript interfaces/models for the following:
Specifying which fields to query (scripted fields, stored fields, _source fields, _score, aggregation results)
Filtering (on fields, scripted fields, aggregation results)
Sorting (on fields, scripted fields, aggregation results)
Paging (on fields, scripted fields, aggregation results)
Related: #29215, #20364
Summary
Currently, our querying infrastructure (a.k.a. "courier") has been around since the early days of 4.x. Over time, lots of functionality has been stuffed/mashed in, not always considering best practices. As a result, courier has lots of complicated functionality and is a cause of a lot of technical debt. Also, it doesn't have a simple or stable API, so usage by core and 3rd party plugins is limited, resulting in a disjointed system for data access across plugins. (Things like Timelion and TSVB don't use courier.)
There are several steps we will take in refactoring courier:
Create a server API (7.4)
Add support for request cancellation (7.4, pending elastic/elasticsearch#43332)
(In progress: #39963) Kibana users & admins would like queries to be cancellable in many situations:
Elasticsearch has this ability, yet courier has not supported it. We'd like to add these capabilities to courier and allow apps to take advantage of query cancellation.
Refactor search source to use the new server APIs and remove Elasticsearch proxy (7.5)
elasticsearch/{indexpattern}/search
endpointelasticsearch/_msearch
endpoint in tutorials to data.search serviceelasticsearch/_msearch
endpoint in field_editor to data.search serviceelasticsearch/_msearch
endpointAssociate search requests with a user/saved object (7.5)
X-Opaque-Id
header in Elasticsearch to associate search requests with a given user/saved object.Add support for query progress (7.6, pending Elasticsearch ability to do so)
Create a high-level API with abstractions (7.7)
Related issues:
Refactoring
Performance/batching
Query cancellation
Elasticsearch query options
The text was updated successfully, but these errors were encountered: