Commit graph

613 commits

Author SHA1 Message Date
Benjamin Trent
ec67787a2e
[ML] add max_model_memory parameter to forecast request (#57254)
This adds a max_model_memory setting to forecast requests. 
This setting can take a string value that is formatted according to byte sizes (i.e. "50mb", "150mb").

The default value is `20mb`.

There is a HARD limit at `500mb` which will throw an error if used.

If the limit is larger than 40% the anomaly job's configured model limit, the forecast limit is reduced to be strictly lower than that value. This reduction is logged and audited.

related native change: https://github.com/elastic/ml-cpp/pull/1238

closes: https://github.com/elastic/elasticsearch/issues/56420
2020-05-29 08:59:50 -04:00
Lee Hinman
4dc32611fc
Rename template V2 classes to ComposableTemplate (#57183)
This PR changes the name of the Index Template V2 classes to "Composable Templates", it also ensures there are no mentions of "V2" in the documentation or error/warning messages. V1 templates are referred to as "legacy" templates.

Resolves #56609
2020-05-27 09:32:10 -06:00
Samidh
199ecbbf77 [Docs] Fix typo in start-watch-service.asciidoc (#57182) 2020-05-27 15:51:07 +02:00
Benjamin Trent
8fed077b0a
[ML] relax throttling on expired data cleanup (#56711)
Throttling nightly cleanup as much as we do has been over cautious.

Night cleanup should be more lenient in its throttling. We still
keep the same batch size, but now the requests per second scale
with the number of data nodes. If we have more than 5 data nodes,
we don't throttle at all.

Additionally, the API now has `requests_per_second` and `timeout` set.
So users calling the API directly can set the throttling.

This commit also adds a new setting `xpack.ml.nightly_maintenance_requests_per_second`.
This will allow users to adjust throttling of the nightly maintenance.
2020-05-18 07:21:06 -04:00
Kamyar Ghajar
e9f1896e3d [Docs] Update multi-search.asciidoc (#56284)
The documentation shows the wrong command for a multi-search async call.
2020-05-06 16:56:58 +02:00
Andrei Dan
9bcf89b1e2
HLRC: document index template v2 and component template APIs (#56136)
This documents the index template v2 and component template APIs in the
high level rest client.
2020-05-05 16:43:16 +01:00
Dimitris Athanasiou
6bf3834059
[ML] Add loss_function to regression (#56118)
Adds parameters `loss_function` and `loss_function_parameter`
to regression.
2020-05-05 12:36:05 +03:00
Hendrik Muhs
33f134f556
[Transform] add throttling (#56007)
add throttling to transform, throttling will slow down search requests by delaying the execution based on a documents per second metric. 

fixes #54862
2020-05-05 11:34:54 +02:00
David Roberts
8906e76079
[ML] Return assigned node in start/open job/datafeed response (#55473)
Adds a "node" field to the response from the following endpoints:

1. Open anomaly detection job
2. Start datafeed
3. Start data frame analytics job

If the job or datafeed is assigned to a node immediately then
this field will return the ID of that node.

In the case where a job or datafeed is opened or started lazily
the node field will contain an empty string.  Clients that want
to test whether a job or datafeed was opened or started lazily
can therefore check for this.

Fixes #54067
2020-04-22 08:44:57 +01:00
Yang Wang
92427d3758
Remove local parameter for get field mapping API (#55100)
The local parameter of get field mapping API is marked as deprecated in 7.x.
This PR removes it for v8.0
2020-04-15 12:02:10 +10:00
Yang Wang
6ce88038f2
Deprecate local parameter for get field mapping request (#55014)
The usage of local parameter for GetFieldMappingRequest has been removed from the underlying transport action since v2.0.

This PR deprecates the parameter from rest layer. It will be removed in next major version.
2020-04-12 12:34:44 +10:00
Benjamin Trent
4e1ff31c3c
[ML] add new inference_config field to trained model config (#54421)
A new field called `inference_config` is now added to the trained model config object. This new field allows for default inference settings from analytics or some external model builder. 

The inference processor can still override whatever is set as the default in the trained model config.
2020-04-02 10:34:17 -04:00
Nhat Nguyen
ee3d40320a
Broadcast cancellation to only nodes have outstanding child tasks (#54312)
Today when canceling a task we broadcast ban/unban requests to all nodes 
in the cluster. This strategy does not scale well for hierarchical
cancellation. With this change, we will track outstanding child requests
and broadcast the cancellation to only nodes that have outstanding child
tasks. This change also prevents a parent task from sending child
requests once it got canceled.

Relates #50990
Supersedes #51157

Co-authored-by: Igor Motov <igor@motovs.org>
Co-authored-by: Yannick Welsch <yannick@welsch.lu>
2020-04-01 11:22:13 -04:00
Christoph Büscher
610b7bdcbf
[Docs] Add HLRC Async Search API documentation (#54353)
Adds documentation and a corresponding test case containing typical API usage
for the Async Search API to the High Level Rest Client.
2020-03-30 15:32:45 +02:00
David Roberts
8ee770560a
[ML] Add a model memory estimation endpoint for anomaly detection (#53507)
A new endpoint for estimating anomaly detection job
model memory requirements:

POST _ml/anomaly_detectors/estimate_model_memory

Closes #53219
2020-03-24 21:38:19 +00:00
Tom Veasey
58340c2dbe
[ML] Adds the class_assignment_objective parameter to classification (#52763)
Adds a new parameter for classification that enables choosing whether to assign labels to
maximise accuracy or to maximise the minimum class recall.

Fixes #52427.
2020-03-12 18:39:29 +00:00
Maxim
b706239145
Add docs for errors in GetAlias API (#51850)
Closes #31499
2020-02-24 17:16:05 +01:00
Benjamin Trent
1c1d45130c
[ML][Inference] don't return inflated definition when storing trained models (#52573)
When `PUT` is called to store a trained model, it is useful to return the newly create model config. But, it is NOT useful to return the inflated definition.

These definitions can be large and returning the inflated definition causes undo work on the server and client side.
2020-02-20 11:25:34 -05:00
OriGlassman
d16f92bbae
[DOCS] Fixed "SeachRequest" -> "SearchRequest" typo in HLRC docs (#52144) 2020-02-14 13:41:51 -05:00
Nik Everett
5b2266601b
Implement top_metrics agg (#51155)
The `top_metrics` agg is kind of like `top_hits` but it only works on
doc values so it *should* be faster.

At this point it is fairly limited in that it only supports a single,
numeric sort and a single, numeric metric. And it only fetches the "very
topest" document worth of metric. We plan to support returning a
configurable number of top metrics, requesting more than one metric and
more than one sort. And, eventually, non-numeric sorts and metrics. The
trick is doing those things fairly efficiently.

Co-Authored by: Zachary Tong <zach@elastic.co>
2020-02-14 07:13:52 -05:00
Nik Everett
75d83db8c7
HLRC support for string_stats (#52163)
This adds a builder and parsed results for the `string_stats`
aggregation directly to the high level rest client. Without this the
HLRC can't access the `string_stats` API without the elastic licensed
`analytics` module.

While I'm in there this adds a few of our usual unit tests and
modernizes the parsing.
2020-02-12 18:01:14 -05:00
Raidok
74a5683875 [DOCS] Fix "Asynchronous usage" title in HLRC docs (#52017) 2020-02-07 09:41:58 -05:00
Ioannis Kakavas
308f95d9f3
Add HLRC docs for AuthN and TLS (#51355)
This commit adds examples in our documentation for

- An HLRC instance authenticating to an elasticsearch cluster using
an elasticsearch token service access token or an API key
- An HLRC instance connecting to an elasticsearch cluster that is
setup for TLS on the HTTP layer when the CA certificate of the
cluster is available either as a PEM file or a keystore
- An HLRC instance connecting to an elasticsearch cluster that
requires client authentication where the client key and certificate
are available in a keystore

Co-Authored-By: Lisa Cawley <lcawley@elastic.co>
2020-01-28 19:09:38 +02:00
Benjamin Trent
c9e285c1e6
[ML][Inference] add tags url param to GET (#51330)
Adds a new URL parameter, `tags` to the GET _ml/inference/<model_id> endpoint.

This parameter allows the list of models to be further reduced to those who contain all the provided tags.
2020-01-24 07:30:56 -05:00
Maxim
c01923043d Add Get Source API to the HLRC (#50885)
Relates to #47678
2020-01-23 09:32:30 +01:00
Nhat Nguyen
09b46c8646
Goodbye and thank you synced flush! (#50882)
Synced flush was a brilliant idea. It supports instant recoveries with a 
quite small implementation. However, with the presence of sequence
numbers and retention leases, it is no longer needed. This change
removes it from 8.0.

Relates #5077
2020-01-16 09:43:07 -05:00
Dimitris Athanasiou
4d2be9bd32
[ML] Add num_top_feature_importance_values param to regression and classi… (#50914)
Adds a new parameter to regression and classification that enables computation
of importance for the top most important features. The computation of the importance
is based on SHAP (SHapley Additive exPlanations) method.
2020-01-14 15:01:47 +02:00
Benjamin Trent
4cecb7a5be
[ML][Inference] PUT API (#50852)
This adds the `PUT` API for creating trained models that support our format. 

This includes

* HLRC change for the API
* API creation
* Validations of model format and call
2020-01-11 16:02:56 -05:00
Dimitris Athanasiou
af0ce426cc
[ML] Implement force deleting a data frame analytics job (#50553)
Adds a `force` parameter to the delete data frame analytics
request. When `force` is `true`, the action force-stops the
jobs and then proceeds to the deletion. This can be used in
order to delete a non-stopped job with a single request.

Closes #48124
2020-01-03 12:01:41 +02:00
Jake
427bf374cd [DOCS] Bump copyright to 2019 for Java HLRC license (#50206) 2019-12-30 15:38:59 -05:00
Martijn van Groningen
a48d19d73a
Add remote info to the HLRC (#50482)
Unreverts the commit that added the remote info api to HLRC (#49657).

The additional change to the original PR, is that `org.elasticsearch.client.cluster.RemoteConnectionInfo` now parses the initial_connect_timeout field as a string instead of a TimeValue instance.

The reason that this is needed is because that the initial_connect_timeout field in the remote connection api is serialized for human consumption, but not for parsing purposes.
Therefore the HLRC can't parse it correctly (which caused test failures in CI, but not in the PR CI
:( ). The way this field is serialized needs to be changed in the remote connection api, but that is a breaking change. We should wait making this change until rest api versioning is introduced.

Co-Authored-By: j-bean anton.shuvaev91@gmail.com
2019-12-24 13:20:39 +01:00
Martijn van Groningen
b7ac7324d2
Revert "Add remote info to the HLRC (#49657)"
This reverts commit fa1a7c57b8.
2019-12-24 11:40:44 +01:00
j-bean
fa1a7c57b8 Add remote info to the HLRC (#49657)
Relates to #47678
2019-12-24 10:49:21 +01:00
Przemysław Witek
786ead630a
Implement precision and recall metrics for classification evaluation (#49671) 2019-12-19 16:07:09 +01:00
Dimitris Athanasiou
269425b54d
[ML] Introduce randomize_seed setting for regression and classification (#49990)
This adds a new `randomize_seed` for regression and classification.
When not explicitly set, the seed is randomly generated. One can
reuse the seed in a similar job in order to ensure the same docs
are picked for training.
2019-12-10 10:22:53 +02:00
Henning Andersen
5b56a990b0
Deprecate sorting in reindex (#49458)
Reindex sort never gave a guarantee about the order of documents being
indexed into the destination, though it could give a sense of locality
of source data.

It prevents us from doing resilient reindex and other optimizations and
it has therefore been deprecated.

Related to #47567
2019-11-29 17:46:44 +01:00
Dimitris Athanasiou
bad07b76f7
[ML] Add optional source filtering during data frame reindexing (#49690)
This adds a `_source` setting under the `source` setting of a data
frame analytics config. The new `_source` is reusing the structure
of a `FetchSourceContext` like `analyzed_fields` does. Specifying
includes and excludes for source allows selecting which fields
will get reindexed and will be available in the destination index.

Closes #49531
2019-11-29 14:20:31 +02:00
Benjamin Trent
ba914453be
[ML][Inference][HLRC] add GET _stats (#49562) 2019-11-26 09:26:31 -05:00
Benjamin Trent
fc7df300a2
[ML][Inference][HLRC] Delete trained model API (#49567) 2019-11-26 07:13:02 -05:00
Dimitris Athanasiou
0390ec3627
[ML] Explain data frame analytics API (#49455)
This commit replaces the _estimate_memory_usage API with
a new API, the _explain API.

The API consolidates information that is useful before
creating a data frame analytics job.

It includes:

- memory estimation
- field selection explanation

Memory estimation is moved here from what was previously
calculated in the _estimate_memory_usage API.

Field selection is a new feature that explains to the user
whether each available field was selected to be included or
not in the analysis. In the case it was not included, it also
explains the reason why.
2019-11-22 20:08:14 +02:00
Lisa Cawley
a4efab6ab4
[DOCS] Merge rollup config details into API (#49412) 2019-11-22 08:31:30 -08:00
Benjamin Trent
9006926a15
[ML][Inference][HLRC] GET trained models (#49464) 2019-11-22 07:31:30 -05:00
Przemysław Witek
94ee36d61e
Implement accuracy metric for multiclass classification (#47772) 2019-11-21 13:07:14 +01:00
Michael Basnight
7115d3e370
Add delete alias to the HLRC (#48819)
The delete alias call is a rest only API call, but should still be added
to the rest client. This commit adds it as well as relevant tests.

Ref #47678
2019-11-11 16:47:22 -05:00
James Rodewig
fb5667cdb4
[DOCS] Replace _uid refs in reindex slicing docs (#48649)
PR #25543 removed the `_uid` field in favor of the `_id` field,
including for use in slicing.

This removes an outdated reference to `_uid` in our reindex docs.
2019-10-29 16:40:39 -04:00
Michael Basnight
db6adf8577
[Docs] add missing snapshot restore reference (#45256) 2019-10-28 09:54:39 -05:00
Alexandre Fonseca
ef240d8b0c [Docs] Fix opType options in IndexRequest API example. (#48290) 2019-10-22 13:48:24 +02:00
Przemysław Witek
99c912b79f
Make num_top_classes parameter's default value equal to 2 (#48119) 2019-10-17 17:59:22 +02:00
Martijn van Groningen
d941e1b3cb
fixed invalid reference 2019-10-15 10:29:47 +02:00
Martijn van Groningen
85ad27e1e7
Merge remote-tracking branch 'es/master' into enrich 2019-10-15 07:19:25 +02:00