123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- [role="xpack"]
- [testenv="basic"]
- [[get-inference-stats]]
- = Get {infer} trained model statistics API
- [subs="attributes"]
- ++++
- <titleabbrev>Get {infer} trained model stats</titleabbrev>
- ++++
- Retrieves usage information for trained {infer} models.
- experimental[]
- [[ml-get-inference-stats-request]]
- == {api-request-title}
- `GET _ml/inference/_stats` +
- `GET _ml/inference/_all/_stats` +
- `GET _ml/inference/<model_id>/_stats` +
- `GET _ml/inference/<model_id>,<model_id_2>/_stats` +
- `GET _ml/inference/<model_id_pattern*>,<model_id_2>/_stats`
- [[ml-get-inference-stats-prereq]]
- == {api-prereq-title}
- If the {es} {security-features} are enabled, you must have the following
- privileges:
- * cluster: `monitor_ml`
- For more information, see <<security-privileges>> and {ml-docs-setup-privileges}.
- [[ml-get-inference-stats-desc]]
- == {api-description-title}
- You can get usage information for multiple trained models in a single API
- request by using a comma-separated list of model IDs or a wildcard expression.
- [[ml-get-inference-stats-path-params]]
- == {api-path-parms-title}
- `<model_id>`::
- (Optional, string)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=model-id]
- [[ml-get-inference-stats-query-params]]
- == {api-query-parms-title}
- `allow_no_match`::
- (Optional, boolean)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=allow-no-match]
- `from`::
- (Optional, integer)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=from]
- `size`::
- (Optional, integer)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=size]
- [role="child_attributes"]
- [[ml-get-inference-stats-results]]
- == {api-response-body-title}
- `count`::
- (integer)
- The total number of trained model statistics that matched the requested ID patterns.
- Could be higher than the number of items in the `trained_model_stats` array as the
- size of the array is restricted by the supplied `size` parameter.
- `trained_model_stats`::
- (array)
- An array of trained model statistics, which are sorted by the `model_id` value in
- ascending order.
- +
- .Properties of trained model stats
- [%collapsible%open]
- ====
- `model_id`:::
- (string)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=model-id]
- `pipeline_count`:::
- (integer)
- The number of ingest pipelines that currently refer to the model.
- `inference_stats`:::
- (object)
- A collection of inference stats fields.
- +
- .Properties of inference stats
- [%collapsible%open]
- =====
- `missing_all_fields_count`:::
- (integer)
- The number of inference calls where all the training features for the model
- were missing.
- `inference_count`:::
- (integer)
- The total number of times the model has been called for inference.
- This is across all inference contexts, including all pipelines.
- `cache_miss_count`:::
- (integer)
- The number of times the model was loaded for inference and was not retrieved from the
- cache. If this number is close to the `inference_count`, then the cache
- is not being appropriately used. This can be remedied by increasing the cache's size
- or its time-to-live (TTL). See <<general-ml-settings>> for the
- appropriate settings.
- `failure_count`:::
- (integer)
- The number of failures when using the model for inference.
- `timestamp`:::
- (<<time-units,time units>>)
- The time when the statistics were last updated.
- =====
- `ingest`:::
- (object)
- A collection of ingest stats for the model across all nodes. The values are
- summations of the individual node statistics. The format matches the `ingest`
- section in <<cluster-nodes-stats>>.
- ====
- [[ml-get-inference-stats-response-codes]]
- == {api-response-codes-title}
- `404` (Missing resources)::
- If `allow_no_match` is `false`, this code indicates that there are no
- resources that match the request or only partial matches for the request.
- [[ml-get-inference-stats-example]]
- == {api-examples-title}
- The following example gets usage information for all the trained models:
- [source,console]
- --------------------------------------------------
- GET _ml/inference/_stats
- --------------------------------------------------
- // TEST[skip:TBD]
- The API returns the following results:
- [source,console-result]
- ----
- {
- "count": 2,
- "trained_model_stats": [
- {
- "model_id": "flight-delay-prediction-1574775339910",
- "pipeline_count": 0,
- "inference_stats": {
- "failure_count": 0,
- "inference_count": 4,
- "cache_miss_count": 3,
- "missing_all_fields_count": 0,
- "timestamp": 1592399986979
- }
- },
- {
- "model_id": "regression-job-one-1574775307356",
- "pipeline_count": 1,
- "inference_stats": {
- "failure_count": 0,
- "inference_count": 178,
- "cache_miss_count": 3,
- "missing_all_fields_count": 0,
- "timestamp": 1592399986979
- },
- "ingest": {
- "total": {
- "count": 178,
- "time_in_millis": 8,
- "current": 0,
- "failed": 0
- },
- "pipelines": {
- "flight-delay": {
- "count": 178,
- "time_in_millis": 8,
- "current": 0,
- "failed": 0,
- "processors": [
- {
- "inference": {
- "type": "inference",
- "stats": {
- "count": 178,
- "time_in_millis": 7,
- "current": 0,
- "failed": 0
- }
- }
- }
- ]
- }
- }
- }
- }
- ]
- }
- ----
- // NOTCONSOLE
|