| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 | [role="xpack"][testenv="basic"][[get-data-frame-transform-stats]]=== Get {dataframe-transform} statistics API[subs="attributes"]++++<titleabbrev>Get {dataframe-transform} statistics</titleabbrev>++++Retrieves usage information for {dataframe-transforms}.beta[][[get-data-frame-transform-stats-request]]==== {api-request-title}`GET _data_frame/transforms/<data_frame_transform_id>/_stats``GET _data_frame/transforms/<data_frame_transform_id>,<data_frame_transform_id>/_stats` +`GET _data_frame/transforms/_stats` +`GET _data_frame/transforms/_all/_stats` +`GET _data_frame/transforms/*/_stats` +[[get-data-frame-transform-stats-prereqs]]==== {api-prereq-title}* If the {es} {security-features} are enabled, you must have`monitor_data_frame_transforms` cluster privileges to use this API. The built-in`data_frame_transforms_user` role has these privileges. For more information,see {stack-ov}/security-privileges.html[Security privileges] and{stack-ov}/built-in-roles.html[Built-in roles].[[get-data-frame-transform-stats-desc]]==== {api-description-title}You can get statistics for multiple {dataframe-transforms} in a single APIrequest by using a comma-separated list of identifiers or a wildcard expression.You can get statistics for all {dataframe-transforms} by using `_all`, byspecifying `*` as the `<data_frame_transform_id>`, or by omitting the`<data_frame_transform_id>`.[[get-data-frame-transform-stats-path-parms]]==== {api-path-parms-title}`<data_frame_transform_id>`::  (Optional, string) Identifier for the {dataframe-transform}. It can be a  {dataframe-transform} identifier or a wildcard expression. If you do not  specify one of these options, the API returns information for all  {dataframe-transforms}.  [[get-data-frame-transform-stats-query-parms]]==== {api-query-parms-title}`allow_no_match`::  (Optional, boolean) Specifies what to do when the request:+--* Contains wildcard expressions and there are no {dataframe-transforms} that match.* Contains the `_all` string or no identifiers and there are no matches.* Contains wildcard expressions and there are only partial matches. The default value is `true`, which returns an empty `transforms` array whenthere are no matches and the subset of results when there are partial matches.If this parameter is `false`, the request returns a `404` status code when thereare no matches or only partial matches.--`from`::  (Optional, integer) Skips the specified number of {dataframe-transforms}. The  default value is `0`.`size`::  (Optional, integer) Specifies the maximum number of {dataframe-transforms} to obtain. The default value is `100`.[[get-data-frame-transform-stats-response]]==== {api-response-body-title}`transforms`::  (array) An array of statistics objects for {dataframe-transforms}, which are  sorted by the `id` value in ascending order.  [[get-data-frame-transform-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. [[get-data-frame-transform-stats-example]]==== ExamplesThe following example skips for the first five {dataframe-transforms} andgets usage information for a maximum of ten results: [source,js]--------------------------------------------------GET _data_frame/transforms/_stats?from=5&size=10--------------------------------------------------// CONSOLE// TEST[skip:todo]The following example gets usage information for the `ecommerce_transform`{dataframe-transform}:[source,js]--------------------------------------------------GET _data_frame/transforms/ecommerce_transform/_stats--------------------------------------------------// CONSOLE// TEST[skip:todo]The API returns the following results:[source,js]----{  "count" : 1,  "transforms" : [    {      "id" : "ecommerce_transform",      "state" : "indexing",      "stats" : {        "pages_processed" : 2,        "documents_processed" : 1220,        "documents_indexed" : 13,        "trigger_count" : 1,        "index_time_in_ms" : 19,        "index_total" : 1,        "index_failures" : 0,        "search_time_in_ms" : 52,        "search_total" : 2,        "search_failures" : 0,        "exponential_avg_checkpoint_duration_ms" : 77,        "exponential_avg_documents_indexed" : 2,        "exponential_avg_documents_processed" : 12      },      "checkpointing" : {        "last" : {          "checkpoint" : 100,          "timestamp_millis" : 1561740252497,          "time_upper_bound_millis" : 1561740192497        },        "next" : {          "checkpoint" : 101,          "position" : {            "indexer_position" : {              "hashtag" : "abcd1234"            },            "buckets_position" : {              "hashtag" : "abcd5678"            }          },          "checkpoint_progress" : {            "documents_processed": 100,            "documents_indexed": 1          },          "changes_last_detected_at": 1561740629170,          "timestamp_millis" : 1561740629172,          "time_upper_bound_millis" : 1561740569172        },        "operations_behind": 27000      }    }  ]}----// TESTRESPONSE
 |